素数的定义:一个大于1且除了1和它自身外不能被其它数整除的数。如:2,3,5,7,11等。由此可见,我们只要用2~<num的数去整除num,如果发现没有一个数可以整除num,那num就是素数;如果2与<num之间有一个数可以整除num,那num就是合数。注意:所有的偶数除了2以外都是合数。
例题:给定一个数组A[100]={1,2,…,99,100},找出里面的素数。
int count=0; //素数的个数
for(int i=0;i<100;i++){
if(i==0) {} //因为1不是质数,所以不操作
else if(i==1||i==2){ //因为2和3是质数
count++;
printf("%d\n",A[i]);
}
else //判断4~100内的数
{
if(A[i]%2==0){}//这里的判断排除掉了4~100中的偶数
else{ //判断4~100中的奇数,这里下标的范围是3~99
for(int j=2;j<=i;j++)
{
if(A[i]%j==0) //说明A[i]不是质数
break;
}
//如果A[i]是质数,则上面的循环结束,此时j比i大1
if(j-i==1)
{
count++;
printf("%d",A[i]);
}
}
}
}
printf("%d",count);
PS:大概思想是这样,代码未经测试,先记录下来,电脑上未装软件,后面装了测吧。