:可逆素数是指一个素数将其各位数字的顺序倒过来构成的反序数也是素数。
编写一个函数isPrime,该函数用于判断整数x是否为素数,若x是素数则返回1,否则返
回0;然后再编写一个函数Reverse,该函数返回整数x反序数(即将各位数字的顺序倒过
来)。输入两个正整数m和n,调用函数isPrime和Reverse,求m~n之间所有可逆素数,
并按从小到大的次序输出。
#include <stdio.h>
int isPrime(int x){
int i;
if(x<2) return 0;
if(x==2) return 1;
for(i=2;i<x;i++)
if(x%i==0) return 0;
return 1;
}
int Reverse(int x){
int y=0;
while(x>0){
y=y*10+x%10;
x=x/10;
}
return y;
}
int main()
{
int m,n;
scanf("%d%d",&m,&n);
for(int x=m;x<=n;x++){
int y=Reverse(x);
if(isPrime(x)==0){
continue;
}else{
if(isPrime(y)==0){
continue;
}else{
printf("%d ",x);
}
}
}
return 0;
}
封装两个函数,一个是素数,一个是反序数即可
#include <stdio.h>
int isPrime(int n)
{
if(n<2)
return 0;
for(int i=2;i*i<=n;i++)
if(n%i==0)
return 0;
return 1;
}
int Reverse(int n)
{
int s=0;
while(n>0)
{
s = s*10 + n%10;
n=n/10;
}
return s;
}
int main()
{
int m,n,k;
scanf("%d%d",&m,&n);
for(int i=m;i<=n;i++)
{
if(isPrime(i))
{
k = Reverse(i);
if(isprime(k))
printf("%d ",i);
}
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!