判断素数的方法(C语言教程)
①目标
判断一个数字区间里的素数
有几个?有哪些?
素数即除了1和自身
不能被其他数整除的数。
~
②命令行
#include< stdio.h>
#include< stdlib.h>
#define MAX 100
~
③定义函数
int fun (int a,int b[MAX])
{
int i,j,k=0;
for(i=2,i<=a;i++)
/*因为素数因数分解的唯一性,1不是素数,故从2开始遍历*/
{for(j=2;j<i;j++)
/*除了1和本身i,之间的数全部遍历*/
if(i%j==0)break;
/*1到i之间有数j能整除i,则i不是素数*/
if(j>=i)aa[k]=i;
/*一直遍历到j>=i,即1到i之间没有数能整除i,则i是素数。同时将素数存入数组aa[k]中。*/
k++;
/*k用于数组下标计数*/
}
return k;
/*k表示素数的个数*/
}
~
④主函数(调用)
void main()
{int a,i,s;
int b[MAX];
printf("输入一个整数:");
scanf("%d",&a);
/*输入a,表示求0到a之间的素数*/
s=fun(a,b);
/*素数个数s,储存在数组b[i]中*/
for(i=0;i<s;i++)
{if(i%10==0&&i!=0)
/*每行输出10个数1个回车,
不足10个数表示最后一行不用回车*/
printf("\n");
printf("%5d",b[i]);}
}