티스토리 뷰

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
boonza=0
boonmo=0
result=1
resultBoonza=1
resultBoonmo=1
for i in range(10,100):
    for j in range(i+1,101):
        boonza=i
        boonmo=j
        resultCommon=0
        resultOdd=0
        boonzaFirst=int(str(boonza)[0])
        boonzaSecond=int(str(boonza)[1])
        boonmoFirst=int(str(boonmo)[0])
        boonmoSecond=int(str(boonmo)[1])
        resultCommon=boonza/boonmo
        if(boonzaFirst==boonmoSecond):
            if(boonmoFirst==0):
                continue
            resultOdd=boonzaSecond/boonmoFirst
            if(resultCommon==resultOdd):
                resultBoonza=resultBoonza*boonzaSecond
                resultBoonmo=resultBoonmo*boonmoFirst
        elif(boonzaSecond==boonmoFirst):
            if(boonmoSecond==0):
                continue
            resultOdd=boonzaFirst/boonmoSecond
            if(resultCommon==resultOdd):
                resultBoonza=resultBoonza*boonzaFirst
                resultBoonmo=resultBoonmo*boonmoSecond
#최대공약수 구하기
for a in range(1,resultBoonza+1):
    gcd=0
    if(resultBoonza%a==0 and resultBoonmo%a==0):
        gcd=a
print(int(resultBoonmo/a))
cs

 

 

 

문제도 흥미롭고 풀리기도 잘 풀려서 재미있었다.

 

'진부하지 않은 경우'를 생각하기 위해 분자와 분모를 자릿수별로 구분하여 비교하였다.

 

그 후 최대공약수를 구하여 답을 얻었다.

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

프로젝트 오일러 38번  (0) 2017.06.29
프로젝트 오일러 34번  (0) 2017.06.29
프로젝트 오일러 30번  (0) 2017.06.29
프로젝트 오일러 21번  (0) 2017.06.29
프로젝트 오일러 2번  (0) 2017.05.19
댓글
최근에 올라온 글
최근에 달린 댓글
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
글 보관함