除数
爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。为什么不可以这样:
a= 10e1000000
for i in a :
if((a %2 == 1)and (a %3 ==2 )and (a %5 == 4)and(a %6 ==5)and(a%7 == 0)):
print(a)
先定一个无穷打的数,然后根据题目每个条件都满足,即可满足题意呢?
a= int(10e1000000)
for i in range(1, a) :
if((a %2 == 1)and (a %3 ==2 )and (a %5 == 4)and(a %6 ==5)and(a%7 == 0)):
print(a) 可以啊,只是你的程序写错了
1、for后面一个是一个可迭代对象
2、if中的条件一个是 i,而不是a, i才是可变量,a 一直没变。print中也是如此
a= int(10e1000000)
for i in range(a) :
if((i %2 == 1)and (i %3 ==2 )and (i %5 == 4)and(i %6 ==5)and(i%7 == 0)):
print(i)
Python 这里的科学计数法都属于浮点型,而浮点型不能作为 range 函数的参数,所以你要将浮点型的值转化为整型
但是在这里,你的 10e1000000 Python 会认为就是浮点型无穷大,而浮点型无穷大不能转化为整型,导致你 int(10e1000000) 也会报错
所以这里建议不用一个值来表示无穷大吧,反正无穷大可以类似看作无限死循环吧,那么我们就用 while True 即可
参考代码:
i = 1
while True:
if((i %2 == 1)and (i %3 ==2 )and (i %5 == 4)and(i %6 ==5)and(i%7 == 0)):
print(i)
i += 1
Ps:Python 的无穷大可以这样表示:float('inf')
页:
[1]