判断是否能够被已知的且<x的素数整除
具体实现代码如下:
#include <stdio.h>
int isPrime(int x,int knowPrimes[],int numberofKnowPrimes);
int main()
{
int number=5;
int prime[number]={2};
/* int j;
for(j=0;j<number;j++){
printf("%d",prime[j]);
}
遍历后可得到初始化结果为prime[5]={2,0,0,0,0}
*/
int count=1;
int i=3;
while (count<number){ //如果用isPrime函数发现i是一个素数,就把i放到prime[count]的位置上
if(isPrime(i,prime,count)){
prime[count++]=i;
}
i++;
}
/*
count=1 i=3 isPrime(3,{2,0,0,0,0},1) return ret=1 prime[1]=3 count=2
count=2 i=4 isPrime(4,{2,3,0,0,0},2) return ret=0
count=2 i=5 isPrime(5,{2,3,0,0,0},2) return ret=1 prime[2]=5 count=3
……
*/
for (i=0;i<number;i++){
printf("%d",prime[i]);
if ((i+1)%5){
printf("\t");
}else{
printf("\n");
}
}
return 0;
}
int isPrime(int x,int knowPrimes[],int numberofKnowPrimes)
{
int ret=1;
int i;
for (i=0;i<numberofKnowPrimes;i++){
if(x%knowPrimes[i]==0){
ret=0;
break;
}
}
return ret;
}