鱼C论坛

 找回密码
 立即注册
查看: 1800|回复: 2

为什么无论输入什么值输出都是not perfect

[复制链接]
发表于 2023-3-19 21:09:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目:一个整数,除了本身以外的其他所有约数的和如果等于该数,那么我们就称这个整数为完全数。例如,6就是一个完全数,因为它的除了本身以外的其他约数的和为 1+2+3=6。
现在,给定你 N个整数,请你依次判断这些数是否是完全数
#include<cstdio>
#include<iostream>
using namespace std;
int main(){
    int n;
    cin>>n;
    for(int i=0; i<n; i++){
        int a, sum=0;
        cin>>a;
        for(int x=1; x<a; x++){
            if(a%x != 0)sum+=x;
        }
        if(sum == a ) cout<<a<<" is perfect"<<endl;
        else cout<<a<<" is not perfect"<<endl;
    }
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-19 21:19:35 | 显示全部楼层
#include <cstdio>
#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    for (int i = 0; i < n; i++) {
        int a, sum = 0;
        cin >> a;
        for (int x = 1; x < a; x++) {
            if (a % x == 0) sum += x; // <-----------------------------------------------------------
        }
        if (sum == a) cout << a << " is perfect" << endl;
        else cout << a << " is not perfect" << endl;
    }
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-20 08:46:39 | 显示全部楼层
C语言:
#include <stdio.h>

int is_perfect_number(int n) {
    int sum = 0;
    for (int i = 1; i < n; i++) {
        if (n % i == 0) {
            sum += i;
        }
    }
    return sum == n;
}

int main() {
    int N;
    printf("请输入要判断的整数个数:");
    scanf("%d", &N);
    for (int i = 0; i < N; i++) {
        int num;
        printf("请输入一个整数:");
        scanf("%d", &num);
        if (is_perfect_number(num)) {
            printf("%d 是完全数\n", num);
        } else {
            printf("%d 不是完全数\n", num);
        }
    }
    return 0;
}

Python实现:
def is_perfect_number(n):
    factors = [i for i in range(1, n) if n % i == 0]
    return sum(factors) == n

N = int(input("请输入要判断的整数个数:"))
for i in range(N):
    num = int(input("请输入一个整数:"))
    if is_perfect_number(num):
        print("{} 是完全数".format(num))
    else:
        print("{} 不是完全数".format(num))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-25 20:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表