|
发表于 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;
- }
复制代码 |
|