7-15 寻找数中连续数字构成的最大素数
分数 20
全屏浏览题目
切换布局
作者 叶斌
单位 成都信息工程大学
输入一个整数,找出其中由N(N>=1)个连续数字组成的最大素数,如果找不到素数,则输出None。
输入格式:输入1个正整数。
输出格式:输出最大素数。
输入样例1: 2114567565 输出样例1: 4567 输入样例2: 468 输出样例2: None代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
参考答案 #include<stdio.h>#include<math.h>int isPrime(int n){if(n<2)return 0;for(int i=2;i<=sqrt(n);i++)if(n%i==0)return 0;return 1;}int main(){int n,i,t,term=0,max=0;scanf("%d",&n);t=n;while(t!=0){t/=10;term++;}for(;term>=0;term--){t=n%(int)pow(10,term);//从最大位数开始削减,因为pow函数输出是double类型,for(i=t;i>0;i/=10){ //而%算法不可对double类型计算,所以强制改变类型为intif(isPrime(i)){if(i>max)max=i;}}}if(max==0)printf("None");else printf("%d",max);return 0;}