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 }
  • 相关阅读:
    Oracle 归档模式
    如果在安装32位Oracle客户端组件的情况下64位模式运行, 将出现此问题.
    ORA-00972: 标识符过长
    Oracle SQL%ROWCOUNT
    ASP.NET Core 中间件的几种实现方式
    Python 闭包
    Python 迭代器
    Python 正则表达式提高
    Python正则表达式
    Python 生成器
  • 原文地址:https://www.cnblogs.com/cxc1357/p/10719976.html
Copyright © 2011-2022 走看看