素数
走进世博园某信息馆,参赛者将获取前所未有的尖端互动体验,一场充满创想和喜悦的信息通信互动体验秀将以全新的形式呈现,从观众踏入展馆的第一步起,就将与手持终端密不可分,人类未来梦想的惊喜从参赛者的掌上开始。
在等候区的梦想花园中,参观者便开始了他们奇妙的体验旅馆,等待中的游客可利用手机等终端参与互动小游戏,与梦想剧场内的虚拟人物进行猜数比赛,当屏幕出现一个整数X时,若你能够比虚拟人物更快的发出最接近它的素数答案,你将获得意想不到的礼物。
例如,当屏幕出现22,你的答案为23,当屏幕出现8的时候,你的回答是7,若X本身是素数,则回答X,,当若最接近X的素数有2个时,则回答大于它的素数。
标准 输入:
第一行:N,要猜的整数个数
接下来有N行,每行输入一个正整数X
标准输出:
输入有N行,每行是对应X最接近它的素数。
约束条件:
1《=N<=5 1<=X<=1000
例如:
标准输入 标准输出
4 23
22 5
5 19
18 7
8
code:
#include <iostream>
#include<math.h>
using namespace std;
int num(int x)
{
int min,max,i,j=1,k=1;
for(i=2;i<x;i++)
{
if(x%i==0)
{
loop:
max=x+j;
for(i=2;i<max;i++)
if(max%i==0)
{
j++;
goto loop;
}
state:
min=x-k;
for(i=2;i<min;i++)
if(min%i==0)
{
k++;
goto state;
}
if((max-x)>(x-min))
x=min;
else
x=max;
return x;
}
}
if(i==x)
return x;
}
int main(int argc, char *argv[])
{
int i,in_num,out_num[10],arr_num[10],rand_num;
while(1)
{
cout<<"/n";
cout<<"请输入你输入的个数:";
cin>>in_num;
cout<<"请输入"<<in_num<<"个数:";
for(i=0;i<in_num;i++)
cin>>arr_num[i];
for(i=0;i<in_num;i++)
out_num[i]=num(arr_num[i]);
cout<<"请输出"<<in_num<<"个素数:";
for(i=0;i<in_num;i++)
cout<<out_num[i]<<"/n";
}
return 0;
}