AcWing 3792. 质数问题
原题链接
简单
作者:
Present.
,
2023-01-14 19:33:01
,
所有人可见
,
阅读 171
#include <bits/stdc++.h>
using namespace std;
int n;
vector<int> v;
bool check(int x)
{
if(x == 1) return false;
if(x == 2) return true;
for(int i = 2;i * i <= x;i ++)
{
if(x % i == 0)
{
return false;
}
}
return true;
}
void ycl()
{
for(int i = 2;i <= n;i ++)
{
if(check(i))
{
v.push_back(i);
}
}
}
bool Function(int x)
{
int isum = 1;
int icount = 0;
for(int i = 0;i < v.size();)
{
isum += v[i];
icount ++;
if(icount == 2)
{
if(isum == x)
{
return true;
}
else
{
isum = 1;
icount = 0;
}
}
else
{
i ++;
}
}
return false;
}
int main()
{
int T;
cin >> T;
while(T --)
{
int k,count = 0;
cin >> n >> k;
ycl();
for(int i = 2;i <= n;i ++)
{
if(check(i))
{
if(Function(i))
{
count ++;
}
}
}
if(count >= k) cout << "YES" << endl;
else cout << "NO" << endl;
}
return 0;
}