求完全数的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])])
运行结果:
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 ? ? ?,谢谢!
上面我做的是正确的,但是我不知道怎么直接输出“? its factors are ? ? ?”
意思就是“什么是完全数他的因子是什么”。
上面我做的是正确的,但是我不知道怎么直接输出“? its factors are ? ? ?”
意思就是“什么是完全数他的因子是什么”。
以上是关于求完全数的python语句的主要内容,如果未能解决你的问题,请参考以下文章