
c语言编程求大佬
问题D:SimplyEmirp时间限制:1Sec内存限制:64MB提交:1926解决:469[提交][状态]题目描述如果一个数不能被除1和它本身之外的其余数整除,那么我们...
问题 D: Simply Emirp
时间限制: 1 Sec 内存限制: 64 MB
提交: 1926 解决: 469
[提交][状态]
题目描述
如果一个数不能被除1和它本身之外的其余数整除,那么我们称这个数为素数(Prime),注意1不是素数。
如果一个素数在翻转之后得到一个数(比如179翻转之后为971),这个数和它翻转之前不一样,并且也为素数,我们称这个数为反素数(Emirp)。
下面给你一个数,请你判断这个数是素数,反素数,非素数。
输入
每行输入一个整数n,以EOF结尾,0<n<1000000。
输出
如果n为反素数,输出: "N is emirp."
如果n为素数,输出:"N is prime."
如果n为非素数,输出:"N is not prime."
样例输入
17
18
19
179
199
样例输出
17 is emirp.
18 is not prime.
19 is prime.
179 is emirp.
199 is emirp.
提示
Append Code 展开
时间限制: 1 Sec 内存限制: 64 MB
提交: 1926 解决: 469
[提交][状态]
题目描述
如果一个数不能被除1和它本身之外的其余数整除,那么我们称这个数为素数(Prime),注意1不是素数。
如果一个素数在翻转之后得到一个数(比如179翻转之后为971),这个数和它翻转之前不一样,并且也为素数,我们称这个数为反素数(Emirp)。
下面给你一个数,请你判断这个数是素数,反素数,非素数。
输入
每行输入一个整数n,以EOF结尾,0<n<1000000。
输出
如果n为反素数,输出: "N is emirp."
如果n为素数,输出:"N is prime."
如果n为非素数,输出:"N is not prime."
样例输入
17
18
19
179
199
样例输出
17 is emirp.
18 is not prime.
19 is prime.
179 is emirp.
199 is emirp.
提示
Append Code 展开
1个回答
展开全部
#include<stdio.h>
int reverse(int n)
{ int m;
for(m=0; n; n/=10)
m=m*10+n%10;
return m;
}
int isprime(int n)
{ int i;
for(i=2; i*i<=n; i++)
if(n%i==0)return 0;
return n>1;
}
int main()
{ int n,m;
while(scanf("%d",&n)==1)
{ if(isprime(n))
{ m=reverse(n);
if(m!=n&&isprime(m))
printf("%d is emirp.\n",n);
else
printf("%d is prime.\n",n);
}
else
printf("%d is not prime.\n",n);
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询