1. 程式人生 > >鄭輕OJ 1092: 素數表(函式專題) 篩選法選擇素數

鄭輕OJ 1092: 素數表(函式專題) 篩選法選擇素數

1092: 素數表(函式專題)

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 5837  Solved: 2375

SubmitStatusWeb Board

Description

 輸入兩個正整數m和n,輸出m和n之間的所有素數。 
要求程式定義一個prime()函式和一個main()函式,prime()函式判斷一個整數n是否是素數,其餘功能在main()函式中實現。 
int prime(int n) 

//判斷n是否為素數, 若n為素數,本函式返回1,否則返回0 

Input

 輸入兩個正整數m和n,m<=n,且都在int範圍內。 

Output

 輸出佔一行。輸出m和n之間的所有素數,每個數後有一個空格。測試資料保證m到n之間一定有素數。

Sample Input

2 6

Sample Output

2 3 5

HINT

Source

*

AC不成功,陣列越界。。。。

程式碼:

/*=============================AC情況===============================*/
/*題目網址:   */
/*時間: */
/*心得:  */

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define G 10001

bool issu[G];

void init() {
	memset(issu,true,sizeof(issu));
	issu[0]=issu[1]=false;
	issu[2]=issu[3]=true;
	for(int j=0; j<G-1; j++) {
		if(issu[j]) {
			for(int k=2*j; k<G-1; k=k+j)
				issu[k]=false;
		}
	}
}

int main() {
	int m,n;
	scanf("%d%d",&m,&n);
	init();
	for(int j=m; j<=n; j++) {
		if(issu[j])
			printf("%d ",j);
	}
	return 0;
}

/*********************************測試資料*********************************


**************************************************************************/