C语言:判断是否为素数,并且打印素数表

    /*
    构造素数表, 只需要用数字除以已经判断出来的数是否能整除就行,
    不需要除以这个数之前所有的数字,
    前提是这个数除以的素数是要比他自己小的 
    */

注意一点:int a[number] = {2,};//先把2给赋初值进去,因为2也算素数,能被1和本身整除而已

还有一点需要注意的是,在输出的时候记得输出的美观性,养成良好习惯。 

代码如下:

#include<stdio.h>
#define number 50  //存储五十个素数 
int isPrime(int, int[], int);
int main()
{
	
	int i, j; 
	int a[number] = {2,};
	int count = 1;
	for(i = 3; count < number; i++)
	{
		if(isPrime(i, a, count))
		{
			a[count++] = i;
		}
	 }
	 int c = 1;
	 for(i = 0; c != 1 , i < count; i++)
	 {
	 	printf("%-4d", a[i]);
	 	if(c % 5 == 0)
	 	{
	 		printf("\n");
		 }
		 c++;
	 }
	
	return 0;
}

int isPrime(int num, int knowprime[], int length)
{
	int ret = 1, i;
	for(i = 0; i < length; i++)
	{
		if(num%knowprime[i] == 0)
		{
			ret = 0;
			break;
		}
	}
		return ret;
}

 

运行结果如下:(我是控制了一个输出50个素数的素数表)

 

posted @ 2022-03-12 13:03  竹等寒  阅读(8)  评论(0编辑  收藏  举报  来源