1152 Google Recruitment
题目大意
给出一个n长度的字符串,求出其中第一个m位的素数
基本思路
枚举每个k位的子串,转换成整数,判断是否是素数(判断素数的时候要把0和1也考虑进去)~
代码
#include <bits/stdc++.h>
using namespace std;
bool prime(int n){
if(n<2) return false;
for(int i=2;i<=sqrt(n);i++){
if(n%i==0){
return false;
}
}
return true;
}
int n,m;//长度为n的字符串,需要长度为m为的素数字符串
string s;//初始字符串
int main(){
cin>>n>>m;
cin>>s;
//i从0枚举到n-m,每次截取长度为m的字符串,判断是不是素数,是素数就做出相应的输出
for(int i=0;i<=n-m;i++){
string temp=s.substr(i,m);
int tempint=stoi(temp);
if(prime(tempint)){
cout<<temp<<endl;
return 0;
}
}
//到了这一步,说明初始字符串中找不出长度为m的素数字符串,输出“404”
cout<<"404"<<endl;
return 0;
}