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;
}