10分求调,必关!
查看原帖
10分求调,必关!
1151573
Chenyueyuan楼主2025/8/29 16:02
#include<bits/stdc++.h>
using namespace std;
const int n = 1000010;
const int m = 2e5 + 10;
int a, N, x[m], c[n], l, k = n, maxx;
int main( ){
	cin >>a >>N;
	for ( int i = 1; i<=N; i++ ){
		cin >>x[i];
		maxx = max (maxx, x[i]);
	}
	for ( int i = 1; i<=1000; i++ ){
		if ( i*i>=a )
			c[++l] = i*i;
		if ( i*i>=maxx )
			break;
	}
	for ( int j = 1; j<=N; j++ ){
		bool f = 0;
		for ( int i = 1; i<=l; i++ ){
			if ( c[i] > x[j] ){
				k = c[i];
				break;
			}
			else if ( x[j]%c[i]==0 ){
				f = 1;
				break;
			}
		}
		if ( f==1 ){
			cout <<"lucky\n";
		}
		else{
			cout <<k <<"\n";
		}
	}
    return 0;
}
2025/8/29 16:02
加载中...