数组构造素数表1

判断是否能够被已知的且<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;
}

猜你喜欢

转载自blog.csdn.net/qq_26565435/article/details/82221562