、猜數比賽()
成都科技館引入了一個智能對話機器人,該機器人引起了很多小朋友的興趣。
小朋友可以利用手機等終端參與互動小遊戲,與進行猜數比賽。當屏幕出現一個整數X時,若你能比更快地發出最接近它的素數答案,你將會獲得一個意想不到的禮物。
例如:當屏幕出現,你的回答應是;當屏幕出現時,你的回答應是;若 本身是素數,則回答X;若最接近X的素數有兩個時,則回答大於它的素數。
【輸入格式】
輸入文件名爲。
輸入文件的第一行,一個正整數n,表示要競猜的整數個數。
接下來的行,每行一個正整數X。
【輸出格式】
輸出文件名爲。
輸出文件有行,每行一個整數,表示與對應X的最接近它的素數。
【輸入樣例1】
4
22
5
18
8
【輸出樣例1】
23
5
19
7
【數據規模與約定】
對於的數據:。
對於的數據:。
題解
#include<bits/stdc++.h>
using namespace std;
int prime(int m)
{
int i;
if(m<2)return 0;
for(i=2;i*i<=m;i++)
if(m%i==0)
return 0;
return 1;
}
int main()
{
freopen("prime.in","r",stdin);
freopen("prime.out","w",stdout);
int n,x;
scanf("%d",&n);
while(n--) //找最近素數
{
int l=0;
scanf("%d",&x);
while(1)
{
if(prime(x+l))
{
printf("%d\n",x+l);
break;
}
else
if(x-l>1&&prime(x-l))
{
printf("%d\n",x-l);
break;
}
l++;
}
}
return 0;
}