从键盘输入正整数n,输出n以内(包括n本身)的所有完全数

从键盘输入正整数n,输出n以内(包括n本身)的所有完全数从键盘输入正整数n,输出n以内(包括n本身)的所有完全数

稍等,帮你写一个

#include <stdio.h>

int isPerfectNumber(int num) {
    int i, sum = 0;
    for (i = 1; i < num; i++) {
        if (num % i == 0) {
            sum += i;
        }
    }
    if (sum == num) {
        return 1;
    }
    return 0;
}

int main() {
    int n, i;
    printf("请输入一个正整数n:");
    scanf("%d", &n);
    printf("%d以内的完全数有:", n);
    for (i = 1; i <= n; i++) {
        if (isPerfectNumber(i)) {
            printf("%d ", i);
        }
    }
    printf("\n");
    return 0;
}


  • 你可以看下这个问题的回答https://ask.csdn.net/questions/661825
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:求n的阶乘时溢出的解决办法
  • 除此之外, 这篇博客: 从键盘输入一个整数n,求n阶斐波拉切级数中的 从键盘输入一个整数n,求n阶斐波拉切级数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 成绩10开启时间2020年03月28日 星期六 16:20
    折扣0.8折扣时间2020年04月20日 星期一 19:20
    允许迟交关闭时间2020年04月30日 星期四 16:20

    请用递归算法,从键盘输入一个小于25的整数n, 求斐波拉切级数。

    求 n 阶斐波拉切级数的公式如 下: 

    当n=0或当n=1时    F ( n ) = 1

    当n>1时              F ( n )= F ( n-1 ) +F ( n-2 )

     测试输入期待的输出时间限制内存限制额外进程
    测试用例 1 
    1. 10↵
     
    1. 89↵
    1秒64M0
    测试用例 2 
    1. 23↵
     
    1. 46368↵
    1秒64M0