1094 谷歌的招聘 (20分)
测试点2的坑
“例如在 200236 中找 4 位素数,0023 算是解”
这句话的意思是23是错误的,0023是正确的,只需把截取出的字符串输出就行,而不是输出转换的数字
代码
#include <iostream>
#include <vector>
#include <string>
#include <cstdio>
//scanf printf防止超时
#include <algorithm>
//vector的sort
#include <sstream>
//转换
using namespace std;
#include<iomanip>
//精度
#include<cmath>
//round四舍五入取整
#include <map>
bool judge(int num)
{
if(num==2)
return true;
if(num%2==0)
return false;
bool flag=true;
int n=sqrt(num);
for(int i=3;i<=n;i=i+2)
{
if(num%i==0)
{
flag=false;
}
}
return flag;
}
int main()
{
int l,k;
cin>>l>>k;
string str;
cin>>str;
bool flag=true;
for(int i=0;i<=l-k;i++)
{
string temp=str.substr(i,k);
stringstream ss;
ss<<temp;
int num;
ss>>num;
if(judge(num))
{
cout<<temp<<endl;
flag=false;
break;
}
}
if(flag)
cout<<"404"<<endl;
return 0;
}