Sample Input 1
20 5
23654987725541023819
Sample Output 1
49877
Sample Input 2
10 3
2468024680
Sample Output 2
404
思路: 暴力打法,直接对k长度的数字,判断是不是素数即可。复杂度很高。。。
代码:
#include<stdio.h>
#include<math.h>
int prime(int n);
int main()
{
int n;
scanf("%d",&n);
int k;
scanf("%d",&k);
char b[1001];
int a[1001];
getchar();
int i,j;
scanf("%s",b);
for(i=0;i<n;i++){
a[i]=b[i]-'0';
}
int sum=0;
int f=0;
for(i=0; i<=n-k; i++) {
sum=0;
for(j=i; j<i+k; j++) {
sum=a[j]+sum*10;
}
if(prime(sum)==1) {
f=1;
break;
}
}
int h;
if(f==1) {
for(h=j-k; h<j; h++) {
printf("%d",a[h]);
}
}
else if(f==0){
printf("404");
}
return 0;
}
int prime(int n)
{
int i;
if(n==1) {
return 0;
}
else if(n==2) {
return 1;
}
else {
for(i=2; i<=sqrt(n); i++) {
if(n%i==0) {
break;
}
}
if(i>sqrt(n)) {
return 1;
}
else {
return 0;
}
}
}