习题6-3 使用函数输出指定范围内的完数

 1 #include <stdio.h>
 2
 3 int factorsum(int number);
 4 void PrintPN(int m, int n);
 5
 6 int main()
 7 {
 8     int i, m, n;
 9
10     scanf_s("%d %d", &m, &n);
11     if (factorsum(m) == m) printf("%d is a perfect number\n", m);
12     if (factorsum(n) == n) printf("%d is a perfect number\n", n);
13     PrintPN(m, n);
14
15     return 0;
16 }
17
18 /* 你的代码将被嵌在这里 */
19 int factorsum(int number)
20 {
21     int sum = 0;
22     if (number == 1)
23     {
24         return 1;
25     }
26     for (int i = 1; i < number; i++)
27     {
28         if (number%i==0)
29         {
30             sum = sum + i;
31         }
32     }
33
34     return sum;
35 }
36
37 void PrintPN(int m, int n)
38 {
39     int is_factorsum = 0;
40     int j;
41     for (int i = m; i <=n; i++)
42     {
43         if (factorsum(i) == i)
44         {
45             printf("%d = 1", i);
46             for (j = 2; j < i; j++)
47             {
48                 if (i % j == 0)
49                 {
50                     printf(" + %d", j);
51                 }
52             }
53             printf("\n");
54             is_factorsum = 1;
55         }
56     }
57     if (is_factorsum == 0)
58     {
59         printf("No perfect number\n");
60     }
61 }

原文地址:https://www.cnblogs.com/2018jason/p/10962314.html

时间: 2024-10-15 19:11:50

习题6-3 使用函数输出指定范围内的完数的相关文章

习题6-3 使用函数输出指定范围内的完数 (20分)

本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数m和n(0)之间的所有完数.所谓完数就是该数恰好等于除自身外的因子之和.例如:6=1+2+3,其中1.2.3为6的因子. 函数接口定义: int factorsum( int number ); void PrintPN( int m, int n ); 其中函数factorsum须返回int number的因子和:函数PrintPN要逐行输出给定范围[m, n]内每个完数的因子累加形式的分解式,每个完数占一行,格式为

习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)

本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0)之间的所有Fibonacci数.所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列. 函数接口定义: int fib( int n ); void PrintFN( int m, int n ); 其中函数fib须返回第n项Fibonacci数:函数PrintFN要在一行中输出给定范围[m, n]内的所有Fibonacci数,相邻数字间有一个空格,行末不得有多余

PTA输出指定范围内的完数

1 #include <stdio.h> 2 3 int factorsum( int number ); 4 void PrintPN( int m, int n ); 5 6 int main() 7 { 8 int i, m, n; 9 10 scanf("%d %d", &m, &n); 11 if ( factorsum(m) == m ) printf("%d is a perfect number\n", m); 12 if

「C语言」「算法」输出指定范围内的素数

#include <stdio.h> //输出指定范围内的素数 int main(){ int a,b; int i,j; printf("请输入整数范围并用空格隔开:\n"); scanf("%d%d",&a,&b); for(i=a;i<=b;i++){ for(j=2;j<=i-1;j++) { if(i%j==0) break; } if(j>=i-1) printf("%d ",i); }

C语言之基本算法38—格式化输出10000以内的全部完数

//穷举法! /* ================================================================== 题目:求10000以内的全部完数,统计数量并以例如以下格式输出: 28=1+2+4+7+14. 注:完数是除了本身外.其值等于包括1的全部因子之和! 如:28的全部因子是:1,2,4,7,28,除了28外其他因子的和=28,故28是完数! =====================================================

C语言之基本算法38—格式化输出10000以内的所有完数

//穷举法! /* ================================================================== 题目:求10000以内的所有完数,统计数量并以如下格式输出: 28=1+2+4+7+14. 注:完数是除了本身外,其值等于包含1的所有因子之和! 如:28的所有因子是:1,2,4,7,28,除了28外其它因子的和=28,故28是完数! =======================================================

中国MOOC_零基础学Java语言_第7周 函数_2完数

2 完数(5分) 题目内容: 一个正整数的因子是所有可以整除它的正整数.而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数.例如6=1+2+3(6的因子是1,2,3). 现在,你要写一个程序,读入两个正整数n和m(1<=n<m<1000),输出[n,m]范围内所有的完数. 提示:可以写一个函数来判断某个数是否是完数. 输入格式: 两个正整数,以空格分隔. 输出格式: 其间所有的完数,以空格分隔,最后一个数字后面没有空格.如果没有,则输出一个空行. 输入样例: 1 10 输出样例:

网易云课堂_程序设计入门-C语言_第五周:函数_2完数

2 完数(5分) 题目内容: 一个正整数的因子是所有可以整除它的正整数.而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数.例如6=1+2+3(6的因子是1,2,3). 现在,你要写一个程序,读入两个正整数n和m(1<=n<m<1000),输出[n,m]范围内所有的完数. 提示:可以写一个函数来判断某个数是否是完数. 输入格式: 两个正整数,以空格分隔. 输出格式: 其间所有的完数,以空格分隔,最后一个数字后面没有空格.如果没有,则输出一个空行. 输入样例: 1 10 输出样例:

如何使用ob函数输出静态html文件

如何使用ob函数输出静态html文件 1.ob函数介绍 1.1.ob_start - 打开输出控制缓冲 bool ob_start ([ callback $output_callback [, int $chunk_size [, bool $erase ]]] )  此函数将打开输出缓冲.当输出缓冲激活后,脚本将不会输出内容(除http标头外),相反需要输出的内容被存储在内部缓冲区中.详情参考:http://php.net/manual/zh/function.ob-start.php 1.