zoukankan      html  css  js  c++  java
  • 习题5-4 使用函数求素数和 (20分)

    本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。

    素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。

    函数接口定义:

    int prime( int p );
    int PrimeSum( int m, int n );
    
     

    其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数mn

    裁判测试程序样例:

    #include <stdio.h>
    #include <math.h>
    
    int prime( int p );
    int PrimeSum( int m, int n );
    
    int main()
    {
        int m, n, p;
    
        scanf("%d %d", &m, &n);
        printf("Sum of ( ");
        for( p=m; p<=n; p++ ) {
            if( prime(p) != 0 )
                printf("%d ", p);
        }
        printf(") = %d
    ", PrimeSum(m, n));
    
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    
     

    输入样例:

    -1 10
    
     

    输出样例:

    Sum of ( 2 3 5 7 ) = 17


     1 int prime(int p){
     2     //负数、0和1不是素数,首先排除
     3     int i=0;
     4     if(p<=1){
     5         return 0;
     6     }
     7     else if(p==2){
     8         return 1;
     9     }
    10     else{
    11         //从2到p依次被除,p/2简化计算量
    12         for(i=2;i<p;i++){
    13             //p能整除i说明不是素数,跳出循环
    14             if(p%i==0){
    15                 return 0;
    16             }
    17         }
    18         //p如果是素数,在执行完最后一次for循环后,i的值再加1,故要判断i是否等于p
    19         if(i==p){
    20             return 1;
    21         }
    22     }
    23 }
    24 
    25 int PrimeSum(int m,int n){
    26     int sum=0;
    27     for(int i=m;i<=n;i++){
    28         if(prime(i)==1){
    29             sum+=i;
    30         }
    31     }
    32     return sum;
    33 }
  • 相关阅读:
    docker学习笔记
    无法启动此程序,因为计算机中丢失api-ms-win
    pandas, groupby
    Chapter Five, More Than Two Variables: Graphical Multivariate Analysis
    ARIMA, Autoregressive Moving Average
    Chapter Four, Time As a Variable: Time-Series Analysis
    Exponentially Weighted Moving-Average
    KaKs_calculator
    pal2nal
    clustal
  • 原文地址:https://www.cnblogs.com/samgue/p/13187604.html
Copyright © 2011-2022 走看看