样例全对,只有10分
查看原帖
样例全对,只有10分
981818
zgjz3u8633楼主2024/6/29 09:39
#include <bits/stdc++.h>
using namespace std;
bool b[200005];
int a;
int n;
void bb()
{
	for(int i = 1;i<=200004;i++)
	{
		if(int(sqrt(i))*int(sqrt(i))==i)
		{
			b[i]=true;
			for(int j = 1;j*i<=200005;j++)
			{
				b[j]=true;
			}
		}
	}
}
//void bl(int n)
//{
//	for(int i = 1;i<=200000;i++)
//	{
//		if(i%n==0)
//		{
//			b[i]=true;
//		}
//	}
//}
int nextl (int n)
{
	while(true)
	{
		n++;
		if(n>=a&&b[n]==true)
		{
//			bl(n);
			return n;
		}
	}
}
int main()
{
	cin>>a;
	cin>>n;
	bb();
	for(int i= 1;i<=n;i++)
	{
		int k;
		cin>>k;
		if(k>=a&&b[k]==true)
		{
			cout<<"lucky"<<endl;
//			bl(k);
		}
		else
		{
			cout<<nextl(k)<<endl;
		}
	}
//	cout<<bl[32];
	return 0;
}

2024/6/29 09:39
加载中...