题目大意:给出长为L的字符串,找到第一个出现的长度为K的素数,这里的长度包括前面的0。
依次遍历判断是否是素数即可。 i = L - K是最后一个长度为K的字符串的起点。
AC代码:
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int num)
{
if(num == 0 || num == 1) return false;
for(int i = 2; i <= sqrt(num); i++)
{
if(num % i == 0) return false;
}
return true;
}
int main()
{
int L, K;
cin >> L >> K;
string str;
cin >> str;
bool flag = false;
for (int i = 0; i <= L - K && !flag; ++i)
{
if(isPrime(stoi(str.substr(i, K))))
{
cout << str.substr(i, K);
flag = true;
}
}
if(!flag) cout << "404";
return 0;
}