Input Specification:
Each input file contains one test case. Each case first gives in a line two positive
integers: L (≤ 1,000) and K (< 10), which are the numbers of digits of the given
number and the prime to be found, respectively. Then the L-digit number N is given
in the next line.
Output Specification:
For each test case, print in a line the first K-digit prime in consecutive digits of
N. If such a number does not exist, output 404 instead. Note: the leading zeroes
must also be counted as part of the K digits. For example, to find the 4-digit prime
in 200236, 0023 is a solution. However the first digit 2 must not be treated as a
solution 0002 since the leading zeroes are not in the original number.
Sample Input 1:
20 5
23654987725541023819
Sample Output 1:
49877
Sample Input 2:
10 3
2468024680
Sample Output 2:
404
找到指定长度的素数。
#include <iostream>
#include <cmath>
#include <string>
#include <sstream>
using namespace std;
int Judge(int a)//判断是否是素数
{
int flag=1;
for(int i=2;i<=(int)sqrt(a);i++)
{
if(a%i==0)
{
flag=0;
break;
}
}
return flag;
}
int main()
{
int L,K;
cin >> L >> K;
string N;
getchar();
getline(cin,N);
int flag;
for(int i=0;i<=L-K;i++)//注意一下i的条件
{
string a=N.substr(i,K);//截取指定长度K的字符串
istringstream in(a);//字符串转换成int数据
int num;
in >> num;
flag=Judge(num);
if(flag==1) {cout <<a;break;}
}
if(flag==0) {cout <<"404";}
return 0;
}