一个数如果从左往右读和从右往左读数字是完全相同的,则称这个数为回文数,比如898,1221,15651都是回文数。编写一个程序,输入两个整数min和max,然后对于min~max之间的每一个整数(包括min和max),如果它既是一个回文数又是一个质数,那么就把它打印出来。要求,回文数和质数的判断都必要要用函数的形式来实现。
输入:
5 100
输出:
5 7 11
#include<iostream>
#include<math.h>
using namespace std;
int judge1(int num) {
int temp = num;
int newNum = 0;
while (num > 0) {
newNum = newNum * 10 + num % 10;
num /= 10;
}
if (newNum == temp) {
return 1;
} else {
return 0;
}
}
int judge2(int num) {
if (num < 2) {
return 0;
} else {
for (int i = 2; i <= sqrt(num); i ++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
}
int main() {
int min, max;
cin >> min >> max;
for (int i = min; i <= max; i ++) {
if (judge1(i) == 1 && judge2(i) == 1) {
cout << i << " ";
}
}
return 0;
}
总结:
注意1不是质数
然后就没啥问题了