签到题,但是需要细心一点。
题目说如果质数是0023要输出0023,所以要么输出的时候记得把0补齐。
附上代码
#include <bits/stdc++.h>
char num[1010];
bool isPrime(int n){
for(int i = 2; i < sqrt(n); i ++){
if(n % i == 0) return 0;
}
return 1;
}
int main(){
int l, k;
scanf("%d %d", &l, &k);
scanf("%s", num);
char s_n[15];
int n;
for(int i = 0; i <= l-k; i ++){
strncpy(s_n, num+i, k);
s_n[k] = '\0';
sscanf(s_n, "%d", &n);
if(isPrime(n)){
printf("%s", s_n);
return 0;
}
}
printf("404");
return 0;
}
素数记得判断0和1,我原来以为我没判断,后来发现这样写既判断了又简单~