zoukankan      html  css  js  c++  java
  • [刷题] PTA 7-33 统计素数并求和

    程序:

     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 }
  • 相关阅读:
    改动EditPlus默认模板
    【Unity3D自学记录】利用代码改动图片属性(Inspector)
    OpenCV两张图片的合并
    HDU 1661 Assigments 贪心法题解
    2016第10周四
    CSS预处理器Sass(Scss)、Less、Stylus
    gulp入门
    2016第10周一
    8个方法让你成为更优秀的程序员
    2016第9周六
  • 原文地址:https://www.cnblogs.com/cxc1357/p/10719976.html
Copyright © 2011-2022 走看看