c++实现调用rand( )函数在[10,500]范围内随机产生若干个整数, 判断并输出其中的可逆素数(一个素数,将其各位数字的顺 序倒过来构成的反序数也是素数)。例如:347是素数,其 反序数743也是素数,所以347是可逆素数。
时间: 2023-06-10 18:08:02 浏览: 96
以下是实现代码:
#include <stdio.h>
#include <stdlib.h>
int isPrime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int reverseNum(int n) {
int res = 0;
while (n) {
res = res * 10 + n % 10;
n /= 10;
}
return res;
}
int main() {
int n, num, reversed;
printf("请输入随机数的个数:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
num = rand() % 491 + 10; // 产生10~500之间的随机数
reversed = reverseNum(num);
if (isPrime(num) && isPrime(reversed)) {
printf("%d是可逆素数\n", num);
}
}
return 0;
}
思路:先编写判断素数的函数isPrime()
和反转数字的函数reverseNum()
,然后在主函数中产生若干个随机数,判断每个数是否为可逆素数,是则输出。其中,产生随机数的方式为利用rand()
函数生成0490之间的随机数再加上10,即可得到10500之间的随机数。
相关推荐













