求完全数的python语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求完全数的python语句相关的知识,希望对你有一定的参考价值。

# !/usr/bin/python27
# coding: utf8
\'\'\'
计算完美数(完全数)
\'\'\'
for n in range(1,1000):
    nlist = [i for i in range(1,n) if n%i == 0]
    if sum(nlist) == n:
        print \'\'.join([str(n),\'=\',\'+\'.join([str(n) for n in nlist])])

运行结果:

6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248

 或者这样:

print [n for n in range(1,1000) if sum([i for i in range(1,n) if n%i == 0]) == n]

结果:
[6, 28, 496]
参考技术A def perfectnum(n):
    for i in range(2,n+1):
        total=0
        for j in range(1,i):
            if i%j==0:
                total+=j
        if total==i:
            yield i
if __name__=='__main__':
    for num in perfectnum(1000):
        print(num)

c++语言 寻找完全数 【循环】

/*【入门】寻找完全数 【循环】
一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,
因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子:
输入
N

1=<N<=30000
输出
? its factors are ? ? ?
样例输入
1000
样例输出
6 its factors are 1 2 3
28 its factors are 1 2 4 7 14
496 its factors are 1 2 4 8 16 31 62 124 248 */

#include <iostream>
using namespace std;
int main()

int N;
cin>>N;
for(int i=1;i<=N;i++)

int sum=0,a;
for(int j=1;j<i;j++)
if(i%j==0)

sum=sum+j;
a=j;

if(sum==i)

cout<<i<<" "<<"its factors are"<<" ";
for(int k=1;k<i;k++)
if(i%k==0)

cout<<k;
if(k!=a)
cout<<" ";

cout<<endl;


return 0;

我的格式错误,求大神把我的输出方式改成? its factors are ? ? ?,谢谢!

参考技术A 你可以试试用一个二维数组先将因子存下来,输出的时候调用那个二维数组就行了 参考技术B cout<<endl; 移到最近的一个 “” 外面追问

上面我做的是正确的,但是我不知道怎么直接输出“? its factors are ? ? ?”

意思就是“什么是完全数他的因子是什么”。

参考技术C ?是什么意思追问

上面我做的是正确的,但是我不知道怎么直接输出“? its factors are ? ? ?”

意思就是“什么是完全数他的因子是什么”。

以上是关于求完全数的python语句的主要内容,如果未能解决你的问题,请参考以下文章

java例题_09 1000以内的完全数

用c语言怎样编写n个数以内的完全数的程序

Python:完全数

询问一个python寻找完全数的程序

求出10000以内所有的完全数-python

完全数--Python