當前位置:
首頁 >
输出指定范围内的完数
發布時間:2025/3/12
13
豆豆
生活随笔
收集整理的這篇文章主要介紹了
输出指定范围内的完数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目要求
本題要求實現一個計算整數因子和的簡單函數,并利用其實現另一個函數,輸出兩正整數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”。
代碼
注意格式的處理
#include <stdio.h>int factorsum( int number ); void PrintPN( int m, int n ); int factorsum( int number ){int k=0;for(int i=1;i<number;++i){if(number%i==0) k+=i;} return k; } void PrintPN( int m, int n ){int s=0;for(int i=m;i<=n;++i){if(factorsum(i)==i){//完數 s++;//記錄完數個數 printf("%d = 1",i);//前幾個輸出,1一定是因數 for(int j=2;j<i;++j){if(i%j==0) printf(" + %d",j);//輸出后面的因數 }printf("\n");}}if(s==0) printf("No perfect number"); } 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; }/* 你的代碼將被嵌在這里 */總結
以上是生活随笔為你收集整理的输出指定范围内的完数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树莓派配置
- 下一篇: Linux C文件编译