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

题目:

如何用python去求出下一个(大于28的)完全数?

(求出10000以内所有的完全数)

分析:

如果一个数恰好等于它的因子之和,则称该数为"完全数".各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数,又称完美书或完备数.

1.第一个完全数是6,它有约数1,2,3,6,除去它本身6外,其余3个数相加为:1+2+3=6

2.第二个完全数是28,它有约数1,2,4,7,14,28,除去它本身28外,其余5个数相加为:1+2+4+7+14=28

题解:

def numbers(number):    sum=0    d=list()    for i in range(1,number):#range(1,6)        if number%i==0:            d.append(i)        else:            continue    for i in d:        sum+=i    if sum==number:        print(number)

for i in range(6,10001):    numbers(i)

				
时间: 2024-08-24 11:05:59

求出10000以内所有的完全数-python的相关文章

C++实现 找出10000以内的完数

C++实现 找出10000以内的完数 #include <stdio.h> int main(){ int n; // 用户输入的整数 int i; // 循环标志 printf("输入一个整数:"); scanf("%d",&n); printf("%d=",n); // n>=2才执行下面的循环 for(i=2; i<=n; i++){ while(n!=i){ if(n%i==0){ printf("

求10000以内质数(以前都是直接打表,现在问到怎么求,瞬间词穷了,还是应该搞懂)

对于求10000以内质数,首先先考虑这个确定性范围的问题,后面再考虑复杂的. 前言摘抄:素数是除了1和它本身之外再不能被其他数整除的自然数.由于找不到一个通项公式来表示所有的素数,所以对于数学家来说, 素数一直是一个未解之谜.像著名的 哥德巴赫猜想.孪生素数猜想,几百年来不知吸引了世界上多少优秀的数学家.尽管他们苦心钻研,呕心沥血,但至今仍然未见分晓. 自从有了计算机之后,人们借助于计算机的威力,已经找到了2216091以内的所有素数. 求素数的方法有很多种,最简单的方法是根据素数的定义来求.对

Python练习题 048:Project Euler 021:10000以内所有亲和数之和

本题来自 Project Euler 第21题:https://projecteuler.net/problem=21 ''' Project Euler: Problem 21: Amicable numbers Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n). If d(a) = b and d(b) = a, where a ≠ b

java循环练习:用户输入一个10以内的数字,通过运算求出该数字的阶乘

package practiceGO; import java.util.Scanner; /*  * 4.用户输入一个10以内的数字,通过运算求出该数字的阶乘  */ public class Cto { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个10以内的数字,由系统计算阶乘"); int num = sc.nextIn

python 求10亿以内和987654互质正整数的和

加群看见的 但是计算好慢,谁有更优的算法,麻烦说一下. ? 1 2 3 4 5 6 7 8 9 10 factor=[] for x in xrange(1, 987654//2+1):     if 987654%x==0:         factor.append(x) sum=0 for y in xrange(1, 1000000000):     for z in factor:         if y%z == 0:             sum+=y print sum 51

openjudge 14:求10000以内n的阶乘

14:求10000以内n的阶乘 总时间限制: 5000ms 内存限制: 655360kB 描述 求10000以内n的阶乘. 输入 只有一行输入,整数n(0<=n<=10000). 输出 一行,即n!的值. 样例输入 100 样例输出 93326215443944152681699238856266700490715968264381621468592963895217599993229915.... 1 #include <algorithm> 2 #include <bit

AC日记——求10000以内n的阶乘 openjudge 1.6 14

14:求10000以内n的阶乘 总时间限制:  5000ms 内存限制:  655360kB 描述 求10000以内n的阶乘. 输入 只有一行输入,整数n(0<=n<=10000). 输出 一行,即n!的值. 样例输入 100 样例输出 9332621544394415268169923885626670049071596826438162146859296389521759999322991560894146397615651828625369792082722375825118521091

求10000以内n的阶乘(openjudge 2923)

求10000以内n的阶乘 总时间限制:  5000ms 内存限制:  655360kB 描述 求10000以内n的阶乘. 输入 只有一行输入,整数n(0<=n<=10000). 输出 一行,即n!的值. 样例输入 100 样例输出 9332621544394415268169923885626670049071596826438162146859296389521759999322991560894146397615651828625369792082722375825118521091686

求10000以内n的阶乘

总时间限制:  5000ms 内存限制:  655360kB 描述 求10000以内n的阶乘. 输入 只有一行输入,整数n(0<=n<=10000). 输出 一行,即n!的值. 样例输入 100 样例输出 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000