| 
 | 
 
 
发表于 2020-11-11 00:06:48
|
显示全部楼层
 
 
 
m 只需被 2 ~ 根号m 之间的每一个整数去除就可以判断为素数。如果 m 不能被 2 ~根号m  间任一整数整除,m 必定是素数。例如判别 17 是是否为素数,只需使 17 被 2~4 之间的每一个整数去除,由于都不能整除,可以判定 17 是素数。 
- #include<stdio.h>
 
 - #include<math.h>
 
 - int main()
 
 - {
 
 -         int start, end, i, k, m, flag = 1, h = 0;
 
 -         do
 
 -         {
 
 -                 printf("Input START and END:");
 
 -                 scanf("%d%d", &start, &end);
 
 -         } while (!(start > 0 && start < end));
 
 -         printf("......... prime table(%d-%d).........\n", start, end);
 
 -         for (m = start; m <= end; m++)    //m从start遍历到end
 
 -         {
 
 -                 k = sqrt(m);    //k等于根号m
 
 -                 for (i = 2; i <= k; i++)    //遍历2到k,看能否整除
 
 -                         if (m % i == 0)
 
 -                         {
 
 -                                 flag = 0;  //如果可以flag变化
 
 -                                 break;
 
 -                         }
 
 -                 if (flag)   //这里对应不能整除的情况,也就是素数,打印出来
 
 -                 {
 
 -                         printf("%-4d", m);
 
 -                         h++;
 
 -                         if (h % 10 == 0)
 
 -                                 printf("\n");
 
 -                 }
 
 -                 flag = 1;
 
 -         }
 
 -         printf("\nThe total is %d", h);
 
 -         return 0;
 
 - }
 
  复制代码 |   
 
 
 
 |