PAT_甲級_1152 Google Recruitment

題目大意:

給出一個L長度的字符串,求出其中第一個K位的素數。ios

算法思路:

使用字符串s接受輸入的字符串,並枚舉每一個k位的子串(起始位置從0到L-K),而後再轉換成整數,判斷是不是素數,若是是就直接輸出並退出程序。若是不存在就輸出404.算法

注意點:

  • 一、測試點3考察前導0的輸出。

提交結果:

image.png

AC代碼:

#include<cstdio>
#include<string>
#include<iostream>
#include<cmath>

using namespace std;

bool isPrime(int num){
    if(num<=1){
        return false;
    }
    int sqrtn = (int)sqrt(num*1.0);
    for (int i = 2; i <= sqrtn; ++i) {
        if(num%i==0){
            return false;
        }
    }
    return true;
}

int main(){
    int L,K;
    scanf("%d %d",&L,&K);
    string s;
    cin>>s;
    int len = L-K;
    for(int i=0;i<=len;++i){
        string r = s.substr(i,K);
        int num = stoi(r);
        if(isPrime(num)){
            cout<<r;
            return 0;
        }
    }
    printf("404");
    return 0;
}
相關文章
相關標籤/搜索