Primes

Primes 

Time Limit: 3000MS

Description

In a pavilion, visitors will get a hitherto unknown cutting-edge interactive experience, a field full of imagination and the joy of the information communication interactive experience show will be a new form, from the audience into the exhibition hall of the first step, will and handheld terminals are inseparable, future human dream surprise from the visitors palm expansion.

In the waiting area of dream garden, visitors began their wonderful experience tour, waiting for the visitors can use mobile phone terminal to participate in interactive games, and dream theater inside the virtual character Kr. Kong to guess the number of games. When the screen appears an integer X, if you can send Kr. Kong faster than its closest prime answers, you will get a beat all gifts.

For example: when the appearance of the screen 22, your answer should be 23; when the screen 8, your answer should be 7; if the X itself is a prime number, then answer X; if the closest X primes are two, then the answer is greater than its prime.

Input

The first line: N to guess the integer number of the next N rows, each row having a positive integer X1<=N<=5 1<=X<=1000

Onput

The output of N rows, each row corresponds to X closest to its prime.

 Sample Input 

Sample Output

4

22

5

18

8

 

23

5

19

7

 

 

 代码:

#include<stdio.h>
int n;
int h[1005];

void init()
{
   for(int i=1;i<1005;i++)
    h[i]=1;
    h[1]=0;
 for(int i=2;i<105;i++)
 {
     int j=2;
  while(i*j<1005)
  {
     h[i*j]=0;
     j++;      
  }   
    }  
}

int main()
{
   init();
   scanf("%d",&n);
   int x;
   while(n--)
   {
      scanf("%d",&x);
   if(h[x])
   {
      printf("%d\n",x);
   continue;    
      }   
      for(int i=x+1,j=x-1;i<1005,j>=1;i++,j--)
       {
       if(h[i]&&h[j])
       {
       printf("%d\n",i);
    goto loop;    
           }
       if(h[i])
       {
    printf("%d\n",i);
    goto loop;
    }   
    if(h[j])
    {
       printf("%d\n",j);
    goto loop;    
    }  
      }
      loop:;
   }
   return 0; 
}

转载于:https://www.cnblogs.com/hebozi/archive/2012/08/05/2624221.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值