티스토리 뷰

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#한 자리 수 판정
sum_result=0
for number in range(3,10):
    result=1
    for i in range(1,number+1):
        result=result*i
    if(number==result):
        sum_result=sum_result+number
#두 자리 수 판정
for number in range(10,100):
    result=0
    result1=1
    result2=1
    number1=int(str(number)[0])
    number2=int(str(number)[1])
    for i in range(1,number1+1):
        resul1t=result1*i
    for i in range(1,number2+1):
        result2=result2*i
    result=result1+result2
    if(number==result):
        sum_result=sum_result+number
#세 자리 수 판정
for number in range(100,1000):
    result=0
    result1=1
    result2=1
    result3=1
    number1=int(str(number)[0])
    number2=int(str(number)[1])
    number3=int(str(number)[2])
    for i in range(1,number1+1):
        result1=result1*i
    for i in range(1,number2+1):
        result2=result2*i
    for i in range(1,number3+1):
        result3=result3*i
    result=result1+result2+result3
    if(number==result):
        sum_result=sum_result+number
#네 자리 수 판정
for number in range(1000,10000):
    result=0
    result1=1
    result2=1
    result3=1
    result4=1
    number1=int(str(number)[0])
    number2=int(str(number)[1])
    number3=int(str(number)[2])
    number4=int(str(number)[3])
    for i in range(1,number1+1):
        result1=result1*i
    for i in range(1,number2+1):
        result2=result2*i
    for i in range(1,number3+1):
        result3=result3*i
    for i in range(1,number4+1):
        result4=result4*i
    result=result1+result2+result3+result4
    if(number==result):
        sum_result=sum_result+number
#다섯 자리 수 판정
for number in range(10000,100000):
    result=0
    result1=1
    result2=1
    result3=1
    result4=1
    result5=1
    number1=int(str(number)[0])
    number2=int(str(number)[1])
    number3=int(str(number)[2])
    number4=int(str(number)[3])
    number5=int(str(number)[4])
    for i in range(1,number1+1):
        result1=result1*i
    for i in range(1,number2+1):
        result2=result2*i
    for i in range(1,number3+1):
        result3=result3*i
    for i in range(1,number4+1):
        result4=result4*i
    for i in range(1,number5+1):
        result5=result5*i
    result=result1+result2+result3+result4+result5
    if(number==result):
        sum_result=sum_result+number
print(sum_result)
cs

 

 

 

참으로 무식한 풀이법이다.

 

 

리스트를 활용하면 어찌어찌 될 것 같은데,

 

원소의 개수에 대응하여 for문의 개수 또한 늘어나야 하기 때문에

 

좀 더 화려한 알고리즘을 짜지 못했다.

 

 

나중에 다시 한번 보는 걸로.

'Algorithm > Project Euler' 카테고리의 다른 글

프로젝트 오일러 27번  (0) 2017.06.29
프로젝트 오일러 38번  (0) 2017.06.29
프로젝트 오일러 33번  (0) 2017.06.29
프로젝트 오일러 30번  (0) 2017.06.29
프로젝트 오일러 21번  (0) 2017.06.29
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
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
글 보관함