题意
在一个字符串中,找到第一个长度为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;
}