• 习题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 }
  • 相关阅读:
    纯CSS气泡对话框
    使用JAVASCRIPT实现的 单行文字 逐个文字变色,可以循环控制
    数字转换成中文汉字
    jquery如何在对表格添加删除后再对其前面加上顺序的序列号
    情路
    【缅怀妈妈系列诗歌】之二十四:一份永不忘却的思念
    我等你,千年之后
    赢道在手,前程无忧
    为你感动
    你为什么对我如此冷漠
  • 原文地址:https://www.cnblogs.com/samgue/p/13187604.html
Copyright © 2020-2023  润新知