×

python判断完美数

python判断完美数(python 程序 求助 编写确定输入整数是否为整数的程序()

admin admin 发表于2024-09-22 19:14:15 浏览4 评论0

抢沙发发表评论

大家好,如果您还对python判断完美数不太了解,没有关系,今天就由本站为大家分享python判断完美数的知识,包括python 程序 求助 编写确定输入整数是否为整数的程序(的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

本文目录

python 程序 求助 编写确定输入整数是否为整数的程序(

python的字符串类型有一个属性isdigit可以判断是否为数字假设设置了一个变量a,则选择把a转换成字符串,再判断代码如下:a=123print(str(a).isdigit())如果变量a是数字,则返回True,否则返回False

用Python编写程序,从键盘输入一个整数并判断该数的类别:其因数之和等于数字本身的数称为完全数

import systheNum = input(’请输入一个数:’)try:theNum = int(theNum)except ValueError:print("请输入一个整数!")sys.exit()# 因子divisor = 1# 因子的和divisors = 0# 求因子的和while divisor 《 theNum:if theNum % divisor == 0:divisors += divisordivisor += 1if divisors == theNum:print("{} 是完全数!\n".format(theNum))else: if divisors 》 theNum: print("{0} 是丰沛数!\n".format(theNum)) else: print("{0} 是不足数!\n".format(theNum))

Python完美数代码问题

root@localhost:~/xly/02# python r.py root@localhost:~/xly/02# cat r.py def computePerfectNumber(n):        k=’’        if (n%10!=0):                for ch in list(str(n)):                        if ch!=’0’:                                k+=ch                if (n%int(k)==0) and (n!=int(k)):                        return True        return Falsealist=for i in range(1,10000):        if computePerfectNumber(i):                alist.append(i)print alist

主要是因为if ch!=’0’:  你少了单引号

python确定一个数是不是完全平方数

1. 与依赖于任何浮动的问题(math.sqrt(x)或x**0.5)是你不能真正确定它的准确(对充分大的整数x,它不会是,甚至有可能溢出)。幸运的(如果是不急于;-)有很多纯整数的方法,如下面的...:def is_square(apositiveint): x = apositiveint // 2 seen = set() while x * x != apositiveint: x = (x + (apositiveint // x)) // 2 if x in seen: return False seen.add(x) return Truefor i in range(110, 130): print i, is_square(i)提示:它是基于“巴比伦算法”的平方根,请参阅维基百科。它适用于任何正数,而您有继续 :让我们看一个例子...x = 12345678987654321234567 ** 2for i in range(x, x+2): print i, is_square(i)这种版画,根据需要(和太;-)一个合理的金额:152415789666209426002111556165263283035677489 True152415789666209426002111556165263283035677490 False请您提出了一种基于浮点结果的解决方案之前 CodeGo.net,确保他们正确地工作在这个简单的例子-它不是那么难(你只需要一些额外的检查,以防是有点过),只是需要多一点的关怀。 然后尝试用x**7并找到解决您会得到这个问题巧妙的方式,OverflowError: long int too large to convert to float你必须得到越来越多的聪明的数量不断增加,当然。 如果我很着急,当然,我gmpy-但后来,我明显偏向;-)。》》》 import gmpy》》》 gmpy.is_square(x**7)1》》》 gmpy.is_square(x**7 + 1)0是啊,我知道,这只是很容易感觉像作弊(有点我总体感觉对Python的;-)的方式-没有聪明可言,只是完美的直接和简单(和,在gmpy,绝对速度的情况下;-) ...2. 用牛顿的快速零最接近的整数的平方根,那么它平方,看看它是否是你的号码。见isqrt。3. 因为你永远无法靠当浮动(如计算平方根的这些方式),一个不易出错将是对处理import mathdef is_square(integer): root = math.sqrt(integer) if int(root + 0.5) ** 2 == integer: return True else: return False想像integer是9。math.sqrt(9)可能是3.0的,但它也可以是像2.99999或3.00001,因此现蕾结果马上是不可靠的。知道int取整数值,通过增加浮点值0.5我们会得到我们要找的,如果我们是在一个范围内的值,其中float仍然有足够细的分辨率来表示附近的一个为我们所期待的数字。4. 我是新来的堆栈溢出,并做了一个快速脱脂找到解决的办法。我只是张贴在另一个线程(寻找完美的正方形)上的例子,一个细微的变化上面,我想我会包括什么,我贴在这里有一个细微的变化(使用nsqrt作为一个临时变量),如果它的利益/使用:import mathdef is_perfect_square(n): if not ( ( isinstance(n, int) or isinstance(n, long) ) and ( n 》= 0 ) ): return False else: nsqrt = math.sqrt(n) return nsqrt == math.trunc(nsqrt)5. 你可以二进制搜索的圆形平方根。平方的结果,以确定它的原始值相匹配。 你可能会更好过与FogleBirds回答-虽然小心,因为浮点数是近似的,它可以抛出这种方法了。你可以在原则上得到一个假阳性从一个大的整数,较完美的正方形,例如,由于丢失精度1以上。6.》》》 def f(x):... x = x ** 0.5... return int(x) == x...》》》 for i in range(10):... print i, f(i)...0 True1 True2 False3 False4 True5 False6 False7 False8 False9 True7. 决定多久的数量就越大。 采取增量0.000000000000 ....... 000001 见,如果(SQRT(X))^ 2-x是大于/等于/大于δ较小并且基于增量误差决定。8. 我不知道Python的,但你可以不喜欢:function isSquare(x) = x == floor(sqrt(x) + 0.5)^2也就是说,拿一个数,求平方根,四舍五入到最接近的整数,它平方,并测试它是作为原来的号码。 (floor并加入0.5做是为了防止类似案件sqrt(4)回国1.9999999...由于浮点运算,麦克grahams指出。) 如果你有兴趣,曾经有一个很好的判断以最快的方式,如果一个整数的平方根是一个整数。 澄清。9. 该回复不属于你的declarative的问题,而是一个隐含的问题,我在您发布的代码中看到,即“如何检查是否是整数?” 优先个回答你通常得到这个问题是“不要!”并且这是真的,在Python,类型检查不应该做的事情。 对于那些极少数的异常,不过,不是寻找数字的字符串表示小数点,那东西做isinstance函数:》》》 isinstance(5,int)True》》》 isinstance(5.0,int)False当然适用于变量,而不是一个值。如果我想确定该值是否是一个整数,我会做到这一点:》》》 x=5.0》》》 round(x) == xTrue但正如其他人已经详细介绍,也有这种事情的大多数非玩具的例子来加以考虑浮点问题。10. 我有轻微的原始巴比伦的方法。取而代之的是一套以存储每个生成的近似,只是最近的两个近似的存储和核对电流近似。这保存了大量的通过整套的近似值的浪费检查。我的java,而不是python和BigInteger类,而不是一个正常的原始整数。 BigInteger S = BigInteger.ZERO; BigInteger x = BigInteger.ZERO; BigInteger prev1 = BigInteger.ZERO; BigInteger prev2 = BigInteger.ZERO; Boolean isInt = null; x = S.divide(BigInteger.valueOf(2)); while (true) { x = x.add(preA.divide(x)).divide(BigInteger.valueOf(2)); if (x.pow(2).equals(S)) { isInt = true; break; } if (prev1.equals(x) || prev2.equals(x)) { isInt = false; break; } prev2 = prev1; prev1 = x; }

找出1000以内的所有完数python

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

例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。第三个完全数是496,有约数1、2、4、8、16、31、62、124、248、496,除去其本身496外,其余9个数相加,1+2+4+8+16+31+62+124+248=496。后面的完全数还有8128、33550336等等。

结果是

python编写函数,实现判断正整数n是否是完数若是,函数返回True,否则返回Flase

#include 《stdio.h》int fun(int n) /*函数用来判断一个数是否是完全数.是就返回1. 不是返回0*/{int i,sum = 0;for(i=1;i《n;i++){if(n % i == 0) //如果i是n的因子. 就将i累加到sum中.sum = sum + i;}if(sum == n) //判断n和sum是否相等.如果相等就说明这个数是完全数.返回1.return 1;return 0; //否则返回0;}int main(){int i,t;/*输入一个整数,判断这个数是否是完全数*/scanf("%d", &t);if( fun( t ) )printf( "Yes\n" );elseprintf( "No\n" );/*输出1000以内所有完全数*/for(i = 1; i 《= 1000; i++){if( fun( i ) )printf("%d\t",i);}printf("\n");return 0;}

用python算完全数之和的方法

def main(n,high):    x=0    perfectnum=    while n《=high:        total=0        for t in range(n//2,0,-1):            if n%t==0:                total+=t                if total》n or (total《n and t==1):                    break        else:            x+=n            perfectnum.append("%d"%n)        n+=1    return (perfectnum,x)if __name__==’__main__’:    perfectnum,total=main(2,20000)    print("%s = %d"%(’ + ’.join(perfectnum),total))

Python 编写一个程序,用户输入一个数,判断这个数是不是完全 次方数,如果是:输出这个数是几的几次方

n = int(input("请输入一个整数:"))i = 2cifang = 0while i 《= n**0.5:    temp = i    times = 1    while temp 《= n:        temp = temp*i        if temp == n:            print(n, "=", i, "* {:d} ".format(i)*times)            cifang = 1            break        times += 1    i += 1if not cifang:    print(n, "不是完全次方数.")

python编写程序,判断一个数字是否符合:三三数之剩二五五数之剩三,七七数之

首先了解“三三数之剩二五五,数之剩三,七七数之”这个规律。这个规律是指:一个数如果满足除以3余数为2、除以5余数为3、除以7余数为0,那么这个数就是符合规律的。以下是一个简单的Python程序,用于判断一个数字是否符合这个规律:num = int(input("请输入一个数字:"))if num % 3 == 2 and num % 5 == 3 and num % 7 == 0:print(num, "符合规律")else:print(num, "不符合规律")这个程序首先会要求用户输入一个数字,然后使用if语句判断这个数字是否符合规律。如果符合规律,程序会输出“符合规律”,否则输出“不符合规律”。

python怎么计算完美数

不知道你的完美数是怎么定义的,原先写了一个判断完美数,并输出小于输入值N的所有完美数的,稍微修改了下。

#!/usr/bin/python# -*- coding:utf-8 -*-# @Time    : 2018/6/16 16:45# @File    : NthPerfectNumber.py"""输出第N个完美数"""def is_perfect(anum):    """判断一个数是不是完美数"""    assert anum 》 0, ’完美数是大于0的整数’    ll =     num = 0    for i in xrange(1, anum):        if anum % i == 0:            ll.append(i)        num = sum(ll)    if num == anum:        return True    else:        return Falsedef nthPerfectNumber(n):    m = 0    t = 1    temp =     while m 《 n:        if is_perfect(t):            temp.append(t)            m += 1            t += 1        else:            t += 1    else:        return tempif __name__ == ’__main__’:    nths = int(raw_input(u’请输入需要返回的第N个完美数:’))    print u’第{0}个完美数是:{1}’.format(nths, nthPerfectNumber(nths))

文章分享结束,python判断完美数和python 程序 求助 编写确定输入整数是否为整数的程序(的答案你都知道了吗?欢迎再次光临本站哦!