def main(): equation = [] if not os.path.exists(dir): os.mkdir(dir) os.chdir(dir) num = int(input("请输入一共有多少个同余方程:")) with open('da ta.txt', 'w') as f: for i in range(num): equation.append(input("请输入第%d个方程:" % i) + "\n") f.write(equation[i]) else: print("目录已存在") os.chdir(dir) data = Data('./data.txt') if data.solution_judge(): print("该同余式组有解") if data.crt_judge(): print("该同余式组可以用中国剩余定理") print("解为: x=%d(mod %d)" % Crt(data).crt_compute()) else: print("该同余式组不可以用中国剩余定理,以一般方法求解") print("解为: x=%d(mod %d)" % Nst(data).nst_compute()) else: print("该同余式组无解") return False
def main(): global solution # 创建Data类实例对象 data = Data('src_data/data.txt') # 调用data对象的solution_judge方法,来判断该同余方程组是否有解 if (data.error_flag): if data.solution_judge(): print("该同余式组有解") # 如果有解,则分两种方式求解 # 先调用crt_judge方法,判断是否可以用中国剩余定理求解 if data.crt_judge(): print("该同余式组可以用中国剩余定理") sol = "解为: x=%d(mod %d)" % Crt(data).crt_compute() print(sol) # 将答案写入文件 with open("src_data/data.txt", "a") as f: f.write("\n" + sol) return sol # 如果crt_judge方法返回0,则调用nst方法,用一般求解方式进行求解 else: print("该同余式组不可以用中国剩余定理,以一般方法求解") sol = "解为: x=%d(mod %d)" % Nst(data).nst_compute() print(sol) # 将答案写入文件 with open("src_data/data.txt", "a") as f: f.write("\n" + sol) return sol else: solution = "该同余式组无解" print("该同余式组无解") return solution else: return data.solution