GESP2023年12月认证C++五级( 第三部分编程题(1)小杨的幸运数)
参考程序:
#include <iostream>
#include <cmath>
using namespace std;
int nextPerfectSquare(int a) {
int sqrt_a = (int)sqrt(a);
if (sqrt_a * sqrt_a < a) {
sqrt_a++; // 如果 sqrt(a) 的平方小于 a,那么就需要加 1,找到下一个完全平方数
}
return sqrt_a * sqrt_a; // 返回下一个完全平方数
}
int main() {
int a, N;
cin >> a >> N;
// 计算下一个完全平方数
int next_square = nextPerfectSquare(a);
// 对每个输入的数字进行处理
for (int i = 0; i < N; ++i) {
int x;
cin >> x;
if (x >= next_square && x % next_square == 0) {
// 如果 x >= next_square 且是完全平方数的倍数,说明它是幸运数
cout << "lucky" << endl;
} else {
// 如果 x 不是幸运数,进行幸运化处理
while (x % next_square != 0) {
x++;
}
cout << x << endl; // 输出幸运化后的结果
}
}
return 0;
}