문제 : 1 ~ 10 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는 2520입니다.
그러면 1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는 얼마입니까?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | def AnyDiv(AnyNum): target = 1 for i in range(1, AnyNum + 1): mod = 0 comp = 0 for j in range(1, i+1): if i % j == 0: comp+=1 if comp == 2: mod = i print "mod : %d" %mod target = target * mod cnt = 2 while mod ** cnt <= AnyNum and mod>=2: print "calc" target = target * mod cnt += 1 print "target is %d " % target #proof boolean = True for i in range(1, AnyNum+1): if target % i !=0: print i boolean = False if boolean == True: print "correct!" AnyNum = raw_input("Input : ") AnyDiv(int(AnyNum)) | cs |
C:\Users\soicem's com\Desktop>python test.py
Input : 30
mod : 2
calc
calc
calc
mod : 3
calc
calc
mod : 5
calc
mod : 7
mod : 11
mod : 13
mod : 17
mod : 19
mod : 23
mod : 29
2329089562800
correct!
C:\Users\soicem's com\Desktop>python test.py
Input : 20
mod : 2
calc
calc
calc
mod : 3
calc
mod : 5
mod : 7
mod : 11
mod : 13
mod : 17
mod : 19
target is 232792560
correct!
'* Computer Science > Project Euler' 카테고리의 다른 글
project euler 7. problem (0) | 2016.07.17 |
---|---|
project euler 6. problem (0) | 2016.07.16 |
project euler 4. problem (0) | 2016.07.14 |
project euler 3. problem (0) | 2016.07.13 |
project euler 2. problem (0) | 2016.07.12 |