一行一个数从键盘输入三个正整数 求这三个数的最大公约数
时间: 2023-04-10 14:05:16 浏览: 107
这个问题可以使用辗转相除法来解决,代码如下:
```
function gcd(a, b)
if b == 0 then
return a
else
return gcd(b, a % b)
end
end
-- 从键盘输入三个正整数
local a = io.read("*n")
local b = io.read("*n")
local c = io.read("*n")
-- 求最大公约数
local result = gcd(gcd(a, b), c)
-- 输出结果
print(result)
```
注意,这里使用了 Lua 的闭包来实现一个递归函数。
相关问题
从键盘输入一个三位正整数,求各位数字的立方和
以下是Python代码实现:
```python
num = int(input("请输入一个三位正整数:"))
a = num // 100 # 百位数
b = num // 10 % 10 # 十位数
c = num % 10 # 个位数
sum = a ** 3 + b ** 3 + c ** 3
print("各位数字的立方和为:", sum)
```
输入示例:
```
请输入一个三位正整数:123
```
输出示例:
```
各位数字的立方和为: 36
```
输入三个正整数,输出这三个数的最大公约数。 用c++
可以使用欧几里得算法(辗转相除法)求解。
C++代码如下:
```cpp
#include <iostream>
using namespace std;
// 求最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int a, b, c;
cout << "请输入三个正整数:";
cin >> a >> b >> c;
int res = gcd(gcd(a, b), c);
cout << "它们的最大公约数是:" << res << endl;
return 0;
}
```
输入三个正整数,程序会输出它们的最大公约数。