0

三角形の数の約数を計算したいのですが、これが私の試みです。

tn = 0
list1 = []
for counter in range(1,8):
    tn=tn+counter
    for i in range(1,counter):
        if(tn%i==0):
            list1.append(i)
    print(list1)

除数をリストに送信し、そのリスト内の要素の数をカウントしたいのですが、このプログラムでは正しい出力が得られません。この問題を解決するのを手伝ってください。

 1: 1           #of elements 1
 3: 1,3         #of elements 2
 6: 1,2,3,6     #of elements 4
10: 1,2,5,10    #of elements 4
15: 1,3,5,15    #of elements 4
4

2 に答える 2

1

リスト内包表記を使用できます

def getDivisors(inputNum):
    result = [i for i in range(2, inputNum // 2 + 1) if inputNum % i == 0]
    result.insert(0, 1)
    if inputNum not in result: result.append(inputNum)
    return result

print getDivisors(1)
print getDivisors(3)
print getDivisors(6)
print getDivisors(10)
print getDivisors(15)

出力

[1]
[1, 3]
[1, 2, 3, 6]
[1, 2, 5, 10]
[1, 3, 5, 15]

[i for i in range(2, inputNum // 2 + 1) if inputNum % i == 0]と同じです

result = []
for i in range(2, inputNum // 2 + 1):
    if inputNum % i == 0:
        result.append(i)
于 2013-10-30T11:35:28.850 に答える