浙大版《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;
}


目录
相关文章
|
1天前
|
C语言
c语言调用的函数的声明
被调用的函数的声明: 一个函数调用另一个函数需具备的条件: 首先被调用的函数必须是已经存在的函数,即头文件中存在或已经定义过; 如果使用库函数,一般应该在本文件开头用#include命令将调用有关库函数时在所需要用到的信息“包含”到本文件中。.h文件是头文件所用的后缀。 如果使用用户自己定义的函数,而且该函数与使用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明。 如果被调用的函数定义出现在主调函数之前可以不必声明。 如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必多所调用的函数在做声明
16 6
|
14天前
|
存储 算法 程序员
C语言:库函数
C语言的库函数是预定义的函数,用于执行常见的编程任务,如输入输出、字符串处理、数学运算等。使用库函数可以简化编程工作,提高开发效率。C标准库提供了丰富的函数,满足各种需求。
|
17天前
|
存储 C语言
【c语言】字符串函数和内存函数
本文介绍了C语言中常用的字符串函数和内存函数,包括`strlen`、`strcpy`、`strcat`、`strcmp`、`strstr`、`strncpy`、`strncat`、`strncmp`、`strtok`、`memcpy`、`memmove`和`memset`等函数的使用方法及模拟实现。文章详细讲解了每个函数的功能、参数、返回值,并提供了具体的代码示例,帮助读者更好地理解和掌握这些函数的应用。
16 0
|
6月前
|
存储 C语言
C 语言函数完全指南:创建、调用、参数传递、返回值解析
函数是一段代码块,只有在被调用时才会运行。 您可以将数据(称为参数)传递给函数。 函数用于执行某些操作,它们对于重用代码很重要:定义一次代码,并多次使用。
184 3
|
1月前
|
C语言
C语言函数返回值详解
本文详细解析了C语言中函数返回值的概念与应用。从函数的基本定义入手,深入探讨了不同类型返回值的作用及意义,并提供了实用的编程示例,帮助读者更好地理解和使用函数返回值。通过本文,你将掌握如何有效利用返回值优化代码结构与功能实现。
|
5月前
|
存储 C语言
C语言的函数返回值和指针
C|函数返回值(区分各类值)和指针(区分各类存储空间)的细节
|
6月前
|
存储 C语言
C语言中向函数传递值和从函数返回值的技术解析
C语言中向函数传递值和从函数返回值的技术解析
67 0
|
12月前
|
C语言
C语言---函数---知识点总结(三)------函数的返回值类型
C语言---函数---知识点总结(三)------函数的返回值类型
|
6月前
|
C语言
在C语言中函数的返回值及其应用示例
在C语言中函数的返回值及其应用示例
66 2
|
6月前
|
存储 C语言
C语言函数的返回值
C语言函数的返回值
61 0