python小白题目

希望可以写的简单些,刚学Python两个月

C语言完整代码,稍微修改一下语法就可以了:

#include <stdio.h>

/*
    7、一个数如果刚好与它的所有的因子之和相等,则称该数为完数,如6=1+2+3,求出1000以内的所有完数    提示:用循环判断1-n之间的数是否为n的因子,是的话累加,要用到双重循环
   因子:除了它本身约数
*/ 
void main(){
    
    int i,j;
    int num;//因子之和 
    for(i=2;i<=1000;i++){
        num = 0;
        //printf("%d的因子如下:",i);
        for(j=2;j<=i;j++){ //j代表i对应的任何一个可能的因子 
            if(i %j == 0){
                num += i/j;  //3,2,1
                //printf("%d+",i/j);
            }
        }
        //printf("\n");
        //判断因子之和是否和该数相等
        if(num==i){
            printf("%d是完数\n",i);
        }     
    }
}
 

for i in range(1,1000):
    arr = [x for x in range(1,i//2+1) if i%x==0] #找出i的因子
    if sum(arr) == i: #判断i的因子之和等于i
        print(i,"的因子:",arr)

输出

6 的因子: [1, 2, 3]
28 的因子: [1, 2, 4, 7, 14]
496 的因子: [1, 2, 4, 8, 16, 31, 62, 124, 248]
 

你自己能写到哪个程度呢?  可以参考这个: https://blog.csdn.net/dou_being/article/details/104357993

# -*- coding: utf-8 -*-

def wanshu():
    for i in range(2, 1000):
        yinzi = [j for j in range(1, i / 2 + 1) if i % j == 0]
        if sum(yinzi) == i:
            print(i, "its factors are ", yinzi)

if __name__ == "__main__":
    wanshu()

 

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632