本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数m和n(0
int factorsum( int number ); void PrintPN( int m, int n );
其中函数factorsum须返回int number的因子和;函数PrintPN要逐行输出给定范围[m, n]内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。如果给定区间内没有完数,则输出一行“No perfect number”。
6 30
- 6 is a perfect number
- 6 = 1 + 2 + 3
- 28 = 1 + 2 + 4 + 7 + 14
7 25
No perfect number
- #include
- int factorsum( int number );
- void PrintPN( int m, int 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 ){
- if(number==1){
- return 0;//1做一下特殊处理;
- }
- int sum=1;
- for(int i=2;i
- if(number%i==0){
- sum+=i;
- }
- }
- return sum;
- }
- void PrintPN( int m, int n ){
- int j,flag=0;
- for(int i=m;i<=n;i++){
- if(factorsum(i)==i){
- flag=1; //进入程序之后,说明是完数,做个标记,让下方判断不是完数时输出更捷;
- printf("%d = 1",i);
- for( j=2;j
- if(i%j==0){
- printf(" + %d",j);//为了适应题目给的示例,做的两个输出;
-
- }
- }
- }
- if(j==i){
- printf("\n");//当含有j的for循环结束时换行;
- }
- }
- if(flag==0){
- printf("No perfect number");
- }
- }
-
相关阅读:
文件上传漏洞
程序员的护城河:从代码到智慧的跨越
2000-2023年省市县人工智能企业数量数据
.NET 8发布首个RC,比.NET 7的超级快更快
神经网络参数量和计算量,神经网络参数个数计算
Camera1 源码解析系列(二)—— Camera1 Open() 流程解析
Maven 的常用命令
无代码开发平台子管理员入门教程
ZEMAX | 绘图分辨率结果对光线追迹的影响
linux平常总结
-
原文地址:https://blog.csdn.net/zxn275266/article/details/128173574