程序设计
找出100-900之间的无暇素数。所谓无暇素数是指本身为素数,且其逆序数也是素数的数。例如:113是个素数,311也是个素数,113就是无暇素数。
编程思路
定义两个函数:isPrime
用于判断一个数是否为素数,reverseNumber
用于将一个数逆序。
isPrime
函数通过遍历从2到根号下num
的数,判断num
是否能被这些数整除来判断num
是否为素数。如果存在能整除num
的数,则num
不是素数,返回0;否则,num
是素数,返回1。
reverseNumber
函数通过循环取num
的个位数并逐步构建逆序数。
在主函数main
中,我们遍历100到900之间的数,对于每个数,判断它是否为素数且其逆序数也是素数。如果满足条件,则输出该数。
源代码:
#include <stdio.h>
int isPrime(int num) {
if (num <= 1) {
return 0;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int reverseNumber(int num) {
int reverse = 0;
while (num > 0) {
reverse = reverse * 10 + num % 10;
num /= 10;
}
return reverse;
}
int main() {
printf("无暇素数:\n");
for (int num = 100; num <= 900; num++) {
if (isPrime(num) && isPrime(reverseNumber(num))) {
printf("%d\n", num);
}
}
return 0;
}
运行截图
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END