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个素数的素数表)
本文来自博客园,作者:竹等寒,转载请注明原文链接。