A-芥川龙之介的河童_牛客挑战赛68 (nowcoder.com)
#include <bits/stdc++.h>
using namespace std;
bool isPrime(int x)
{
if(x%2 == 0) return false; //除了2的偶数一定不是素数
double t = sqrt(x);
for(int i=3; i<=t; i+=2) //跳过偶数,减少判断次数
if(x%i == 0) return false;
return true;
}
int main()
{
int t; cin>>t;
while(t--)
{
int n;
scanf("%d", &n);
//通过找规律找到 1~5 都是它们本身
if(n <= 5) printf("%d\n", n);
else
{
//其它为它们往前的第一个素数(小于等于n)
for(int i=n; i>=1; i--)
{
if(isPrime(i))
{
printf("%d\n", i);
break;
}
}
}
}
return 0;
}