//遍历每个下标ifor(i=0,i<=l-k;i++)//截取长为k的字符串str.substr(i,k)for(int i =0; i <=l-k; i++){//1234//3//([1])234//l=4,k=3//l-k==1
string s_ = s.substr(i,k);//截取从下标i开始,长度为k的字符串
//只要有一个符合,就跳出(记录标志),不然就(标志)不变,全部不符合,根据标记来输出bool flag =false;for(int i =0; i <=l-k; i++){//1234//3//([1])234//l=4,k=3//l-k==1
string s_ = s.substr(i,k);//截取从下标i开始,长度为k的字符串int s_int =stoi(s_);//小于 10 的正整数if(isP(s_int)==true){/每一个长度为k的字符串都不是素数,那么就是404,有一个就是跳出
flag =true;
cout << s_int;//从任一给定的长度为 L 的数字中,//找出最早出现的 K 位连续数字所组成的素数。break;}}if(flag ==false)cout <<"404";
//素数的判断//n一旦能被[i,sqrt(n)]的任意一个整数整除,就不是素数boolisP(int n){if(n ==1)returnfalse;for(int i =2; i <=sqrt(n); i++){if(n % i ==0)///break;returnfalse;}//if (i >= sqrt(n))return true;//else return false;returntrue;}
#include<iostream>//#include <cstring>#include<string>#include<cmath>usingnamespace std;bool flag =false;boolisP(int n){if(n ==1)returnfalse;for(int i =2; i <=sqrt(n); i++){if(n % i ==0)///break;returnfalse;}//if (i >= sqrt(n))return true;//else return false;returntrue;}intmain(){int l,k;
cin >> l >> k;//20 5
string s;
cin >> s;for(int i =0; i <=l-k; i++){//1234//3//([1])234//l=4,k=3//l-k==1
string s_ = s.substr(i,k);//截取从下标i开始,长度为k的字符串int s_int =stoi(s_);//小于 10 的正整数if(isP(s_int)==true){
flag =true;
cout << s_int;//从任一给定的长度为 L 的数字中,//找出最早出现的 K 位连续数字所组成的素数。break;}}if(flag ==false)cout <<"404";return0;}