首页 > 其他分享 >实验6-8 使用函数输出指定范围内的完数

实验6-8 使用函数输出指定范围内的完数

时间:2024-08-05 20:28:45浏览次数:7  
标签:输出 函数 int number 因子 完数 printf factorsum

本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有完数。所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。
函数接口定义:

int factorsum( int number );
void PrintPN( int m, int n );

其中函数factorsum须返回int number的因子和;函数PrintPN要逐行输出给定范围[m, n]内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + … + 因子k”,其中完数和因子均按递增顺序给出。如果给定区间内没有完数,则输出一行“No perfect number”。

输入样例1:

6 30

输出样例1:

6 is a perfect number
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14

输入样例2:

7 25

输出样例2:

No perfect number

程序:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int factorsum(int number);//返回int number 因子和
void PrintPN(int m, int n);//要逐行输出给定范围[m, n]内每个完数的因子累加形式的分解式,每个完数占一行

int main()
{
    int m, n;

    scanf("%d %d", &m, &n);
    if (factorsum(m) == m) printf("%d is a perfect number\n", m);
    if (factorsum(n) == n) printf("%d is a perfect number\n", n);
    PrintPN(m, n);

    return 0;
}
int factorsum(int number)
{
    int i, temp = 0;
    for (i = 1; i < number; i++)
    {
        if (number % i == 0)
        {
            temp = temp + i;
        }
    }
    return temp;
}
void PrintPN(int m, int n)
{
    int i, k, temp = 0, flag = 1;
    for (i = m; i <= n; i++)
    {
        if (factorsum(i) == i)
        {
            flag = 0;
            printf("%d=", i);
            for (k = 1; k < i; k++)
            {
                if (k == 1)
                {
                    printf("%d", k);
                    continue;
                }
                if (i % k == 0) printf("+%d", k);
            }
            printf("\n");
        }
    }
    if (flag == 1)
    {
        printf("No perfect number");
    }
}


标签:输出,函数,int,number,因子,完数,printf,factorsum
From: https://blog.csdn.net/weixin_52249641/article/details/140935110

相关文章

  • 实验6-9 使用函数输出指定范围内的Fibonacci数
    本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。函数接口定义:intfib(intn);voidPrintFN(intm,intn);......
  • 2-2 字符串的基本操作函数及注意事项(超详细)
    目录字符串操作函数分类1.字符串长度和复制2.字符串连接3.字符串比较4.字符串查找5.字符串转换6.字符串复制和移动7.字符串填充和比较字符串操作函数使用1.strlen函数2.strcpy函数3.strcat函数4.strcmp函数5.strncpy函数6.strncat函数7.s......
  • [AHK2] 配置文件新语法——函数
    开始今天,我在使用自定义的配置文件语法时又发现了不足,那就是需要一种插值语法,可以减少很多重复。比如,我有很多个字段都是http网址:vm:http://192.168.6.100:8080rm:http://192.168.6.101:9000能不能不打这么多?答案是可以的,所以我设计了新语法————函数。它类似ahk的......
  • 7.31今日还是函数
    1.使用指针实现一维数组的传参,写一个冒泡排序的函数voidsort_(int*p,intlen) #include<stdio.h>#include<string.h>voidsort_(int*p,intlen){ intm; for(inti=0;i<len;i++) { for(intj=0;j<len-1;j++) { if(*(p+j)>*(p+j+1)) { ......
  • C语言 随机函数
    随机函数随机函数是一个使用内部链接的静态变量的函数;ANSIC库提供了rand()函数生成随机数。在C语言中rand()生成的随机数,并不是真正意义上的随机数,而是一个伪随机数;实际上,rand()是“伪随机数生成器”,意思是可预测生成数字的实际序列,且数字在其取值范围内均匀分布......
  • 【Python】Python中的输入与输出——内附Leetcode【151.反转字符串中的单词】的C语言
    输入与输出导读一、Python中的输出1.1基本用法1.2格式化输出1.3通过`:`格式化值的输出1.4其它格式化输出二、Python中的输入2.1基本用法2.2`split()`方法2.3split()习题演练结语导读大家好,很高兴又和大家见面啦!!!在上一篇内容中我们介绍了Python中的数据类......
  • Python函数
    函数定义函数需要用def关键字实现,具体的语法格式如下:def函数名(形参列表)://由零条到多条可执行语句组成的代码块[return[返回值]]其中,用[]括起来的为可选择部分,即可以使用,也可以省略。此格式中,各部分参数的含义如下:函数名:从语法角度来看,函数名只要是一个合法......
  • 【Python&GIS】Arcpy中常用出图函数详解
        出图是每个GISer都要经历的事,但有时候会有许多重复且多且无聊的出图任务,这个时候我们肯定想能不能自动化出图。ArcGIS中的模型创建就可以实现,但是我的数据大部分是在Python中处理的,所以就想能不能使用Python进行批量出图,正好今天跟大家分享一下。这里使用的mxd作为......
  • Mysql的length函数,char_length函数与字符,字节的区别
    在存储中,1个英文单词或1个英文字符为1个1字节,1个中文或1个中文字符为3个字节 在Mysql5.0之前,VARCHAR(20)中的20表示20个字节,英文可以存储20个,但中文只能存储6个 在Mysql5.0之后,varchar(20)中的20表示20个字符,不管中文还是英文都可以存储20个 length()函数是查找字节数,CHAR_LENG......
  • C 和 Python 代码的函数的不同十六进制转储值
    这是我的示例C代码,用于从user32.dll中转储MessageBoxA:#include<windows.h>#include<stdio.h>voidDumpFun(HANDLEprocess,LPVOIDaddress,SIZE_Tdump_size){BYTE*buffer=(BYTE*)malloc(dump_size);if(buffer==NULL){pri......