素数

素数
走进世博园某信息馆,参赛者将获取前所未有的尖端互动体验,一场充满创想和喜悦的信息通信互动体验秀将以全新的形式呈现,从观众踏入展馆的第一步起,就将与手持终端密不可分,人类未来梦想的惊喜从参赛者的掌上开始。
在等候区的梦想花园中,参观者便开始了他们奇妙的体验旅馆,等待中的游客可利用手机等终端参与互动小游戏,与梦想剧场内的虚拟人物进行猜数比赛,当屏幕出现一个整数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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值