题目描述
分析
找出一个(0<L<=1000)L位数字中第一个K(0<K<=10)位数字的素数。
不断提取出K位子串进行判断是否为素数。
解题代码
#include <iostream>
#include <string>
using namespace std;
bool isPrime(int n) {
if (n == 0 || n == 1) return false;
for (int i = 2; i * i <= n; i++)
if (n % i == 0) return false;
return true;
}
int main() {
int l, k;
string s;
cin >> l >> k >> s;
for (int i = 0; i <= l - k; i++) {
string t = s.substr(i, k);
int num = stoi(t);
//string to int 把字符串中前面的数字提取出来 如果都是数字则都提取
if (isPrime(num)) {
cout << t;
return 0;
}
}
cout << "404\n";
return 0;
}