대 52번 문제를 변형해서 예를 들어 2/5면, 1/(2+ 1/2)이렇게 표현할 수 있는데, 그래서 차례로 a, b, c.....이걸 표현할려고 코드를 만들었어요...(여기서 a는 2, b는 2, c는 존재 X) 근데 자꾸 안되네요... 혹시 코드 수정해주시거나 만들어주실 분!!!! 도와주세요!!!!!!!
이건 코드입니다.
참고로, Visual Studio Code로 하고 있습니다.
from math import *
n = str(int(input("Input Number : "))/int(input("Input Number : ")))
def f(x) :
p = 1/x - (1/x // 1)
return p
def g(k) :
if (k > 1) : f(g(k-1))
if k == 1 : f(n)
if k == 0 : n
def a(k) :
p = (1/g(k-1)) // 1
return p
wow = []
k = 1
while a(k) == (a(k) // 1) :
wow.append(a(k))
k += 1
print(wow)
up = int(input("분자를 입력하세요 : "))
down = int(input("분모를 입력하세요 : "))
while type(down/up) == float:
print(int(down/up))
down = down - up*int(down/up)
tmp = down
down = up
up = tmp
저기.....혹시.... 천재에요??????????????????????????????????????????
아니 이걸.....
아니!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
진리를 찾아서님
항상 감사합니다
다시 보니 while type(down/up) == float: 이 부분은 while True:로 바꾸어도 됩니다.(사실 저도 만들고 원리는 잘 모른채 테스트 몇 번해보니까 되길래 그냥 올렸습니다. 다시 꼼꼼히 검토해보니 수정하는게 더 자연스러울 것 같네요. 물론 while type(down/up) == float:로 해도 결과에 이상은 없습니다.)
혹시..... n번쨰 쌍둥이소수 구하는 알고리즘도 봐주실 수 있으신가요??
def is_prime(n) :
if n % 2 == 0: return False
k = 3
while k <= (n**(1/2)):
if n % k == 0: return False
k += 2
return True
def wow_prime(n) :
if is_prime(n) == True :
if is_prime(n + 2) == True :
return True
if is_prime(n + 2) == False :
return False
k = 1
w = []
n = int(input("Input Number : "))
while k <= n :
if wow_prime(k) == True :
w.append(k)
k += 1
if wow_prime(k) == False :
k += 1
print(w)
p.s. 이 프로그램은 while문 안의 내용을 계속 반복하다가 시행이 끝날 때가 되면 0으로 나누는 오류를 일으켜 프로그램을 중단시키는 원리이기 때문에 vscode가 아닌 다른 곳에서 시행하면 시행이 안 될수도 있습니다. 파이썬 기본 idle에선 시행되지 않네요.)
def is_prime(n) :
if n % 2 == 0: return False
k = 3
while k <= (n**(1/2)):
if n % k == 0: return False
k += 2
return True
def wow_prime(n) :
if is_prime(n) == True :
if is_prime(n + 2) == True :
return True
elif is_prime(n + 2) == False :
return False
elif is_prime(n) == False:
return False
k = 1
i = 2
w = []
n = int(input("Input Number : "))
while k <= n :
if wow_prime(i) == True:
w.append(i)
k += 1
i += 1
elif wow_prime(i) == False:
i += 1
print(w)