思路:注意补零,然后模拟就完事了,比较简单。

#include<cstdio>
#include<cmath>
char str[1010];
int isprime(int x){
	if(x<1) return 0;
	else if(x==2) return 1;
	else if(x%2==0) return 0;
	else{
		for(int j=3;j<=int(sqrt(x));j+=2){
			if(x%j==0) return 0;
		}
	}
	return 1;
}
int main(){
	int n,m,flag=0;
	scanf("%d%d%s",&n,&m,str);
	for(int i=m-1;i<n;i++){
		int sum=0;
		for(int j=i-m+1;j<=i;j++){
			sum=sum*10+str[j]-'0';
		}
		if(isprime(sum)){
			int t=1,tmp=sum;
			while(tmp/10){
				t++;
				tmp=tmp/10;
			}
			for(int j=0;j<m-t;j++){
				printf("0");
			}
			printf("%d\n",sum);
			flag=1;
			break;
		}
	}
	if(flag==0) printf("404\n");
	return 0;
}