方法一:
主要思想: 先判断能否被已知的且小于x的素数所整除,若不能,则x为素数;
代码如下:
#include <stdio.h>
int IsPrime(int x, int AlreadyPrime[], int length);
int main(){
const int N = 1024;
const int num = 100;
int prime[N];
int cnt = 0, i = 2, j = 1;
int *ptr = prime;
while (cnt < num){
if (IsPrime(i, prime, cnt)){
prime[cnt] = i;
cnt++;
}
i++;
}//录入前100个素数
for (; ptr - prime < num; ptr++){
printf("第%d个素数是%d\n", j++, *ptr);
}
}
//判断能否被已知且小于x的素数所整除
int IsPrime(int x, int AlreadyPrime[], int length){
int i;
int ret = 1;
for (i = 0; i < length; i++){
if (x % AlreadyPrime[i - 1] == 0){
ret = 0;
break;
}
}
return ret;
}