//13.回文质数
#include<stdio.h>
#include<math.h>
#include<stdbool.h>
bool isPalindrome(int n) {
int s = 0,k = n;//指数翻转需要两个变量,一个用来存翻转后的数,一个变量用来不断的去掉个位
while (k != 0)
{
s *= 10;//s把个位腾出来
s += k % 10;//把个位加上把k剥离出来的个位
k /= 10;//把个位给舍掉
}
if (s == n)return true;
return false;
}
bool isPrime(int n)
{
for (int i = 3; i <= sqrt(n); i=i+2)
{
if (n % i == 0)return false;
}
return true;
}
int main()
{
int a, b;
scanf_s("%d %d", &a, &b);
if (a % 2 == 0) a++;
if (b >= 10000000)b = 10000000;
for (int i = a; i <= b; i=i+2) {
if (isPalindrome(i) && isPrime(i))
{
printf("%d\n", i);
}
}
return 0;
}
学到了一点:即用框架写(把主要思路写在主函数中,然后再分函数去解决)