Keywords:
string ;str.size();str.substr(pos_begin,lenth);sstream;istringstream is; is>>num;
NOT AC CODE:(5/7)
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <sstream>
#include <cmath>
using namespace std;
bool isprime(int num);
int main()
{
//freopen("sample_input.txt","r",stdin);
int L,K;
cin>>L>>K;
bool flag_found =false;
string str;
cin>>str;
for(int i = 0 ; i <= str.size()-K ; i++){
string str_substr = str.substr(i,K);
istringstream is(str_substr);
int num;
is>>num;
if(isprime(num)){
flag_found = true;
printf("%0d\n",num);
break;
}
}
if(!flag_found) cout<<"404"<<endl;
return 0;
}
bool isprime(int num)
{
if(num ==2 ||num ==3) return true;
else{
for(int i = 2 ; i <= sqrt(num) ; i++){
if(num % i == 0) return false;
}
}
return true;
}
version:2.0;(6/7)
解决了一个测试点:如果寻找的素数长度K 大于给定的字符串长度L,直接输出404:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <sstream>
#include <cmath>
using namespace std;
bool isprime(int num);
int main()
{
//freopen("sample_input.txt","r",stdin);
int L,K;
cin>>L>>K;
if( K > L){
printf("404");
return 0;
}
bool flag_found =false;
string str;
cin>>str;
for(int i = 0 ; i <= str.size()-K ; i++){
string str_substr = str.substr(i,K);
istringstream is(str_substr);
int num;
is>>num;
if(isprime(num)){
flag_found = true;
printf("%d",num);
break;
}
}
if(!flag_found) cout<<"404";
return 0;
}
bool isprime(int num)
{
if(num ==0 ||num ==1) return false;
if(num ==2 ||num ==3) return true;
else{
for(int i = 2 ; i <= sqrt(num) ; i++){
if(num % i == 0) return false;
}
}
return true;
}