这个程序整体来讲,没什么难点,唯一的bug是pow()这个函数,用int作为参数返回的结果不对= =这个必须debug才能看到
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
typedef int Status;
long powme(int k);
int isPrime(long num);
int main()
{
int num,commandCount;
scanf("%d %d",&num,&commandCount);
char level[num];
int i;
for(i=0;i<num;i++){
scanf("%1d",&arr[i]);
}
int flag = 1;
for(i=0;i<l-k+1;i++){
long a = 0;
int j;
for(j = i;j<k+i;j++){
long temp = powme(k+i-j-1);
temp = temp *arr[j];
a += temp;
}
if(isPrime(a)){
printf("%0*ld",k,a);
flag = 0;
break;
}
}
if(flag){
printf("404");
}
return 0;
}
int isPrime(long num){
int flag = 1;
int i;
if(num == 1||num == 0){
return 0;
}
if(num == 2){
return 1;
}
for(i = 2;i<sqrt(num);i++){
if(num % i == 0){
flag = 0;
break;
}
}
return flag;
}
long powme(int k){
long a = 1;
int i;
for(i = k-1;k>0;k--){
a *=10;
}
return a;
}