题解 | #素数回文#
素数回文
https://www.nowcoder.com/practice/d638855898fb4d22bc0ae9314fed956f
#include <stdio.h>
int weishu(long long x)//位数,求回文数要用
{
int n=0;
long long t;
while(x)
{
t=x%10;
x/=10;
n++;
}
return n;
}
int sushu(long long x)//判断素数
{
int m;
for(long long i=2;i<=sqrt(x);i++)
{
m=1;
if(x%i==0)
{
m=0;
break;
}
}
return m;
}
long long huiwenshu(long x,int y)//回文数
{
long long a=x;
int i=0;
x*=pow(10,((double)y-1));//pow函数要转化为double类型
while(a)
{
long long q=a%10;
a/=10;
if(i>0)
x+=q*pow(10,((double)y-1-i));
i++;
}
return x;
}
int main() {
long long a=0;
int n;
scanf("%lld",&a);
n=weishu(a);
a=huiwenshu(a,n);
if(sushu(a))
printf("prime");
else
printf("noprime");
return 0;
}
#菜狗的解题#
查看8道真题和解析