浙大版《C语言程序设计(第3版)》题目集习题5-4 使用函数求素数和 (20 分)

简介: 本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。函数接口定义:int prime( int p );int PrimeSum( int m, int n );其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数m≤n。

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


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


函数接口定义:


int prime( int p );


int PrimeSum( int m, int n );


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



//质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
#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\n", PrimeSum(m, n));
    return 0;
}
/* 你的代码将被嵌在这里 */

输入样例:


-1 10


输出样例:


Sum of ( 2 3 5 7 ) = 17


方法一


20210506090306376.png

int prime( int p ){
  int i;
    if(p<2){
        return 0;
    }
    else if(p==2){
        return 1;
    }
    else {
       for(i=2;i<p;i++)
      {
           if(p%i==0)
               break;
      }
        if(p==i)
    {  return 1;}
        else 
    { return 0;}
    }
}
int PrimeSum( int m, int n ){
    int sum=0,i;
    if(m<2)
        m=2;
        for(m;m<=n;m++)
        {
           for(i=2;i<m;i++)
           {
               if(m%i==0)
               break;
           }
            if(m==i)sum+=m;
        }
    return sum;
}


方法二

20210506090508355.png


int prime( int p ){
  int i;
    if(p<2){
        return 0;
    }
    else if(p==2){
        return 1;
    }
    else {
       for(i=2;i<p;i++)
      {
           if(p%i==0)
               break;
      }
        if(p==i)
    {  return 1;}
        else 
    { return 0;}
    }
}
int PrimeSum( int m, int n ){
    int sum=0,i,f;
    if(m<2)
        m=2;
        for(m;m<=n;m++)
        {
         f=prime(m);
     if(f==1)
       sum+=m;
        }
    return sum;
}


目录
相关文章
|
5天前
|
Java C语言 C++
定义C语言的int main()函数
定义C语言的int main()函数
|
3天前
|
Java C语言 C++
定义C语言的int main()函数
定义C语言的int main()函数
|
6天前
|
Java 程序员 Linux
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
13 0
|
9天前
|
C语言
【C语言基础篇】字符串处理函数(四)strcmp的介绍及模拟实现
【C语言基础篇】字符串处理函数(四)strcmp的介绍及模拟实现
|
8天前
|
C语言
C语言prinf函数
C语言prinf函数
11 4
|
6天前
|
存储 移动开发 C语言
技术心得记录:嵌入式开发中常用到的C语言库函数
技术心得记录:嵌入式开发中常用到的C语言库函数
|
8天前
|
编译器 程序员 Serverless
函数(C语言)
函数(C语言)
|
8天前
|
机器学习/深度学习 C语言
详细解读C语言math.h中常用函数
详细解读C语言math.h中常用函数
10 1
|
8天前
|
C语言
C语言刷题(函数)
C语言刷题(函数)