錯誤記錄(二)

素數

時間限制:3000 ms  |  內存限制:65535 KB
難度:1
描述

走進世博園某信息通信館,參觀者將獲得前所未有的尖端互動體驗,一場充滿創想和喜悅的信息通信互動體驗秀將以全新形式呈現,從觀衆踏入展館的第一步起,就將與手持終端密不可分,人類未來夢想的驚喜從參觀者的掌上展開。

在等候區的夢想花園中,參觀者便開始了他們奇妙的體驗之旅,等待中的遊客可利用手機等終端參與互動小遊戲,與夢想劇場內的虛擬人物Kr. Kong 進行猜數比賽。當屏幕出現一個整數X時,若你能比Kr. Kong更快的發出最接近它的素數答案,你將會獲得一個意想不到的禮物。

例如:當屏幕出現22時,你的回答應是23;當屏幕出現8時,你的回答應是7;若X本身是素數,則回答X;若最接近X的素數有兩個時,則回答大於它的素數。

 

輸入
第一行:N 要競猜的整數個數
接下來有N行,每行有一個正整數X
1<=N<=5 1<=X<=1000
輸出
輸出有N行,每行是對應X的最接近它的素數
樣例輸入
4
22
5
18
8
樣例輸出
23
5
19
7
#include<stdio.h>
#include<string.h>
int sushu(int x)
{
	int i;
	if(x==2)
		return 1;
	for(i=2;i*i<=x;i++)
	{
		if(x%i==0)
			return 0;
	}
	return 1;
}
int main()
{
	int n,a,c,d,i;
	int b[1100];
	memset(b,0,sizeof(b));
	for(i=2;i<1100;i++)
		b[i]=sushu(i);
	scanf("%d",&n);
	while(n--)
	{
		scanf("%d",&a);
		//for(c=d=a;c>0;c--,d++)當a=1時無法輸出結果
		for(c=d=a;;c--,d++)
		{
			if(b[d])
			{
				printf("%d\n",d);break;
			}
			if(b[c])
			{
				printf("%d\n",c);break;
			}
		}
	}
	return 0;
}


發佈了83 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章