牛客挑战赛68
A—芥川龙之介的河童
题目
输入与输出
样例
思路
找出1到n中的最大的素数,即为最小的正整数k
注意:判断素数的循环里面,i每次都是奇数去判断,减少判断次数,否则会超时
#include<bits/stdc++.h>
using namespace std;
bool prime(int a) {
if (a % 2 == 0) return false;///除了2的偶数都不是素数
for (int i = 3; i <= sqrt(a); i += 2)///跳过偶数
if (a % i == 0) return false;
return true;
}
int main() {
int t;
cin >> t;
while (t--) {
int a;
cin >> a;
if (a >= 1 && a <= 5)
cout << a << endl;
else {
for (int i = a; i >= 1; i--) {
if (prime(i)) {
cout << i << endl;
break;
}
}
}
}
return 0;
}