PAT_A1152
PAT甲级1152.
目录
A1152
题目
样例
样例1
输入:
20 5
23654987725541023819
输出:
49877
样例2
输入:
10 3
2468024680
输出:
404
思路和坑点
每次截取字符串中规定位数的字符转化为数字之后判定是不是素数。
AC代码
#include<bits/stdc++.h>
using namespace std;
bool IsPrime(int x){
if(x==0||x==1) return false;
for(int i=2;i<sqrt(1.0*x);i++)
if(x%i==0) return false;
return true;
}
int main(){
#ifdef ONLINE_JUDGE
#else
freopen("1.txt", "r", stdin);
#endif
string str;
int len,k;
scanf("%d %d\n",&len,&k);
cin>>str;
for(int i=0;i+k<=len;i++){ //注意循环边界
string num=str.substr(i,k); //去除当前位置开始向后的k个字符
if(IsPrime(stoi(num))){ //转化成数字并验证是不是素数,如果是则输出并返回
cout<<num; return 0;
}
}
cout<<"404"; //如果找不到符合条件的素数,则输出404
return 0;
}