访客只能看到部份内容,免费 加入会员 或由脸书 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; }