import math import numpy as np import sympy as sp from IPython.display import display while True: try: p=int(input("p=")) q=int(input("q=")) if p<=0 or q<=0: print("正数を入力してください。") continue break except ValueError: print("正の整数を入力してください。") f=sp.sqrt(p+2*sp.sqrt(q)) print("問題は") display(f) print("その答えは") last=int(np.sqrt(abs(q)))+1 for i in range(1,last): if q%i == 0 and (i+q//i == p): answer1=sp.sqrt(i)+sp.sqrt(q//i) display(answer1) break else: print("2重根号は外れません。")