题解
把s当作一个队列 就是先进先出
在输入的时候就进行判断 这叫同步进行 嘿嘿
先把s加到L位 并判断是不是素数 是的话退出即可
若不是 则把s的第一位删掉 在下一次循环中s就有加了新的数字
在进行判断
上来一看就想到了暴力 但一想不能那么简单 看了看时间200ms 就想到了这个
算是比较快
#include <iostream>
#include <cmath>
#include <string>
//素数
bool shu(int x)
{
for (int i = 2; i < sqrt(x); ++i)
{
if (x % i == 0)
return 0;
}
return 1;
}
using namespace std;
int main()
{
int N, L;
int t = 0;
cin >> N >> L;
string s;
for (int i = 0; i < N; ++i)
{
char c;
cin >> c;
//把c加到s里面
s.push_back(c);
if (s.size() == L)
{
//讲s转为int型 (函数)
int x = stoi(s);
if (shu(x))
{
cout << s;
return 0;
}
else
{
//删除函数 用法可在我的博客里搜索
s.erase(0, 1);
}
}
}
cout << "404";
return 0;
}