PAT(Advanced Level)1152. Google Recruitment

题意

在一个字符串中,找到第一个长度为k的子串,而且这个子串对应的数字要是素数

思路

  • 遍历这个字符串,每次用substr取长度为k的子串即可,利用stoi函数可以方便地将字符串→数,然后检查是否为素数即可

代码

#include<iostream>
#include<vector>
#include<algorithm>
#include<math.h>
#include<cmath>
using namespace std;
bool is_prime(int x) {
    if(x < 2) {
        return false;
    }
    if(x == 2) {
        return true;
    }
    for(int i = 2; i < sqrt(x) + 1; i++) {
        if(x % i == 0) {
            return false;
        }
    }
    return true;
}
int main() {
    string s;
    int l, k;
    cin >> l >> k;
    cin >> s;
    for(int i = 0; i < s.size() - k + 1; i++) {
        int value = stoi(s.substr(i, k));
        if(is_prime(value)) {
            cout << s.substr(i, k);
            return 0;
        }
    }
    cout << 404;
}
上一篇:MySQL内置函数


下一篇:XSS攻击 eval(location.hash.substr(1)); 笔记