题目大意:给出长为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;
}
本文介绍了一种算法,用于在给定长度的字符串中查找第一个长度为K的素数。通过遍历字符串并使用isPrime函数检查每个可能的子串是否为素数,最后输出找到的素数或提示未找到。

5817

被折叠的 条评论
为什么被折叠?



