Python每日一题(2)
本帖最后由 wangka 于 2020-3-23 11:24 编辑今天的题目:
输入一个数后,返回这个数的因数个数
例子:输入2,返回2(2有两个因数)
今天开始第1名+5鱼币,第2和3名+1鱼币
{:5_91:} 加油!
如果好请订阅淘贴 本帖最后由 永恒的蓝色梦想 于 2020-3-23 15:43 编辑
from math import sqrt,floor
def func(n):
end=sqrt(n)
if not end%1:
count=1
else:
count=0
end=floor(end)
for i in range(1,end):
if not n%i:
count+=2
return count def fun(x):
count=0
for i in range(1,x+1):
if x%i==0:
count += 1
else:
continue
return count
数值太大可能会超时,先这样 本帖最后由 wangka 于 2020-3-23 12:11 编辑
天边一抹灬红 发表于 2020-3-23 11:50
数值太大可能会超时,先这样
请确保输入后返回不是内置,尝试使用input ,但是代码可以 {:5_106:}{:10_266:} 大家加油啊 永恒的蓝色梦想 发表于 2020-3-23 12:11
有个错:
11行,for循环应该以1开始吧
不然会报错 本帖最后由 Hoiste 于 2020-3-23 15:15 编辑
while True:
num = int(input('请输入任意整数:'))
count = 2
if num == 1:
count = 1
elif num == 2:
count = 2
else:
for i in range(2, num // 2 + 1):
if num % i == 0:
count += 1
print(count)
因为过了二分之一之后就只有本身是因数了,不过也只是降低了一点运算时间而已。。。搬了一段自己用过的求质数的代码改了下 #整数的因数
x=eval(input())
a=0
for i in range(1,x+1):
if x%i==0:
a+=1
print(a)
wangka 发表于 2020-3-23 12:09
请确保输入后返回不是内置,尝试使用input ,但是代码可以
#整数的因数
x=eval(input())
a=0
for i in range(1,x+1):
if x%i==0:
a+=1
print(a)
qiuyouzhi 发表于 2020-3-23 15:12
有个错:
11行,for循环应该以1开始吧
不然会报错
感谢指正{:10_248:}
wangka 发表于 2020-3-23 12:09
请确保输入后返回不是内置,尝试使用input ,但是代码可以
#整数的因数
x=eval(input())
a=0
for i in range(1,x+1):
if x%i==0:
a+=1
print(a)
wangka 发表于 2020-3-23 12:09
请确保输入后返回不是内置,尝试使用input ,但是代码可以
#整数的因数
x=eval(input())
a=0
for i in range(1,x+1):
if x%i==0:
a+=1
print(a) input_num = int(input("请输入一个整数:"))
i = 1
count = 0
flag = 0
while (i <= input_num // i):
if (input_num % i == 0):
count += 1
if (i == input_num / i):
flag = 1
i += 1
if (flag):
count = count * 2 - 1
else:
count *= 2
print("%d有%d个正因数" % (input_num, count))
是这样咩...... n = eval(input("请输入一个数,将返回它的因数个数"))
count = 0
for i in range(1, n+1):
if n % i == 0:
count += 1
print(count)
页:
[1]