首页 > 其他 > 详细

c——统计区间内质数

时间:2019-04-16 21:25:12      阅读:237      评论:0      收藏:0      [点我收藏+]

PTA

 1 #include<stdio.h>
 2 #include<math.h>
 3 int prime(int p);
 4 
 5 int main() {
 6     int m,n,i;
 7     int sum = 0;
 8     int count = 0;
 9     scanf("%d %d",&m,&n);
10     for(i = m; i <= n; i++) {
11         if(prime(i)) {
12             sum += i;
13             count++;
14         }
15     }
16     printf("%d %d",count,sum);
17 }
18 
19 int prime(int p) {
20     int isPrime = 1;
21     int i;
22     if(p < 2) {
23         isPrime = 0;
24     } else {
25         for(i = 2; i <= (int)sqrt(p); i++) {
26             if(p % i == 0) {
27                 isPrime = 0;
28                 break;
29             }
30         }
31     }
32     return isPrime;
33 }

判断质数的函数一定要单独写。

另外,注意两个边界条件:

1、1不是质数,单独考虑

2、判断质数时,除数的条件:i <= (int)sqrt(p)

 

我的程序,耦合度高,而且有两个测试用例通不过

 1 #include<stdio.h>
 2 #include<math.h>
 3 
 4 int main() {
 5     int m,n,t,p,flag;
 6     int sum = 0;
 7     int count = 0;
 8     scanf("%d %d",&m,&n);
 9     t = m;
10     while(t <= n) {
11         p = 2;
12         flag = 0;
13         while(p <= (int)sqrt(t)) {
14             if(t % p == 0) {
15                 flag = 1;
16                 break;
17             }
18             p++;
19         }
20         if(flag == 0) {
21             sum += t;
22             count++;
23         }
24         t++;
25     }
26     printf("%d %d",count,sum);
27 }

 

c——统计区间内质数

原文:https://www.cnblogs.com/cxc1357/p/10719976.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!