编制求两个正整形数最小公倍数程序。要求:两个输入框txt、txt2, 用来输入整形数据;一个按钮;一个不可编辑的输入组件txt3。当单击按 钮时,在txt3中显示两个整形数的最小公倍数的值。
时间: 2023-12-03 22:41:55 浏览: 164
大学经典C语言编程试题.doc
你可以使用以下代码实现两个正整形数最小公倍数的求解:
```python
import math
import tkinter as tk
def lcm(a, b):
return abs(a*b) // math.gcd(a, b)
def calculate_lcm():
try:
num1 = int(txt.get())
num2 = int(txt2.get())
result = lcm(num1, num2)
txt3.config(state='normal')
txt3.delete(0, tk.END)
txt3.insert(0, result)
txt3.config(state='readonly')
except ValueError:
txt3.config(state='normal')
txt3.delete(0, tk.END)
txt3.insert(0, "请输入两个整数")
txt3.config(state='readonly')
root = tk.Tk()
root.title("最小公倍数计算器")
label1 = tk.Label(root, text="第一个数:").grid(row=0, column=0)
txt = tk.Entry(root)
txt.grid(row=0, column=1)
label2 = tk.Label(root, text="第二个数:").grid(row=1, column=0)
txt2 = tk.Entry(root)
txt2.grid(row=1, column=1)
btn = tk.Button(root, text="计算", command=calculate_lcm)
btn.grid(row=2, column=1)
label3 = tk.Label(root, text="最小公倍数:").grid(row=3, column=0)
txt3 = tk.Entry(root, state='readonly')
txt3.grid(row=3, column=1)
root.mainloop()
```
该程序使用了 Python 内置的 math 模块中的 gcd 函数来求取两个数的最大公约数,并用 abs 函数取绝对值来避免出现负数的情况。在 GUI 界面中,使用了 tkinter 库中的 Entry、Label 和 Button 控件来实现输入和输出的功能。其中,Entry 控件在初始化时默认为可编辑状态,而为了保证结果输出的正确性,我们需要将其设置为只读状态。
阅读全文