c++p1642:回文质数

描述 
回文质数    
【问题描述】
因为151即是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。
写一个程序来找出大过a的最小的回文质数。
【输入格式】
第 1 行: 一个整数 a .(a<100000)
【输出格式】
输出一个回文质数。
【输入样例】
10301
【输出样例】
10501
输入格式 
一个整数 a .(a<100000)
输出格式 
输出一个回文质数。
样例输入
10301
样例输出 

10501
时间限制 
各个测试点1s

代码如下: 

#include <stdio.h>
#include <math.h>

bool isSnum(int n)
{
	int i = 2;
	for (; i < sqrt(n)+ 1; i++)
	{
		if (n % i == 0)
		{
			return false;
		}
	}
	return true;
}

void main()
{
	int n;
	scanf("%d",&n);
	int m = n;
	while (true)
	{
		m++;

		int temp = m;
		int y = 0;
		while (temp > 0) {

			y = y * 10 + temp % 10;

			temp = temp / 10;
		}
		if (y != m)
			continue;

		if (isSnum(m))
		{
			printf("%d", m);
			break;
		}
	}
}