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;
}