注意substr的用法,s.substr(i, j)的范围是[i , i + j)
#include <iostream>
#include <cmath>
using namespace std;
string s;
bool isPrime(int num) {
if (num <= 1) return false;
int sqr = (int)sqrt((double)num);
for (int i = 2; i <= sqr; i ++) {
if (num % i == 0) return false;
}
return true;
}
int stringToInt(int start, int end) {
int num = 0;
for (int i = start; i <= end; i ++) {
num = num * 10 + s[i] - '0';
}
return num;
}
int main() {
int L, K, num;
bool flag = false;
cin >> L >> K >> s;
for (int i = 0; i < s.size(); i ++) {
int tar = i + K - 1;
if (tar >= s.size()) break;
num = stringToInt(i, tar);
if (isPrime(num)) {
flag = true;
cout << s.substr(i, K);
break;
}
}
if (!flag) cout << "404";
cin >> L;
return 0;
}