訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容
#include <stdio.h> #define MAX_PRIME 100 int main() { char x[MAX_PRIME+1]; int c,j; printf("2 "); for (c=3;c<=MAX_PRIME;c+=2) { if(x[c]) { printf("%d",c); printf(" "); for (j=(c<<1);j<=MAX_PRIME;j+=c) x[j]=0; } } system("PAUSE"); }
深深思念一個人的時候,我們不知不覺的地活在世界的中心...
/* 尋找第n個質數 Design by koukaipan 2005.01.25 Edited & Compiled by DevC++ 4.9.9.0 版權沒有 引用附上koukaipan原著 */ #include <stdio.h> #include <conio.h> #define MAX 50 /*建立質數表*/ void make_list(int arr[]) { int n = 1, //n為陣列足標 代表第n個直數 i, //建表loop j; //判斷質數loop for (i=2; i<=32767 && n<=MAX; i++) { for (j=2; j*j<=i; j++) { if( i % j == 0) break; }//end 判斷i的for loop if (j*j > i) { arr[n] = i; n++; }//end if }//end 建表的for loop }//end function make_list int main() { int arr[MAX], m; make_list (arr); while(1) //讓程式一直跑 { scanf("%d", &m); printf("%d\n", arr[m]); }//end while getch(); return(0); }//end main
void make_list(int arr[]) { int n = 1, //n為陣列足標 代表第n個直數 i, //loop j; //判斷質數迴圈 arr[1] = 2; for (i=2; i<=32767 && n<=MAX; i++) { for (j=1; j<=n; j++) if( i % arr[j] == 0) break; if (j > n) arr[++n] = i; }//end 建表的for loop }//end function make_list
int prime(int y) { int arr[MAX]; /* 建表 */ return ( arr[y] ); }
int prime(int n) { int i,j,num; num = 0; //第幾個質數 i=1; //質數數值 while(n != num){ i++; j = i-1; for(j; j >= 1; j--){ if(j==1){ //到1都無法有任何數可整除,為質數 num++; break; } if((i%j) == 0){ break; } } } return i; }