素数的判断方法记录

素数的定义:一个大于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:大概思想是这样,代码未经测试,先记录下来,电脑上未装软件,后面装了测吧。

发布了28 篇原创文章 · 获赞 13 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/pilgrim_121/article/details/100125235