Chinaunix首页 | 论坛 | 博客
  • 博客访问: 13367
  • 博文数量: 12
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-18 23:11
文章分类

全部博文(12)

文章存档

2017年(11)

2016年(1)

我的朋友

分类: 高性能计算

2017-03-02 23:20:20

题目:输入两个正整数m和n,求其最大公约数和最小公倍数

分析:使用欧几里德算法

package main

import (
    "fmt"
)

/*最大公约数*/
func euclidean(a, b int) int {
    for b != 0 {
        a, b = b, a%b
    }
    return a
}

/*最小公倍数*/
func leastcommmultiple(a, b, c int) int {
    return (a / c) * (b / c) * c
}

func main() {
    var m, n, k int
    fmt.Scanf("%d %d", &m, &n)

    k = euclidean(m, n)
    fmt.Printf("%d和%d的最大公约数是%d\n", m, n, k)
    fmt.Printf("%d和%d的最小公倍数是%d\n", m, n, leastcommmultiple(m, n, k))
}

运行结果:

48 95

48和95的最大公约数是1

48和95的最小公倍数是4560

...

40 91

40和91的最大公约数是1

40和91的最小公倍数是3640

...

324 958

324和958的最大公约数是2

324和958的最小公倍数是155196

阅读(605) | 评论(0) | 转发(0) |
0

上一篇:因数分解

下一篇:字符串统计

给主人留下些什么吧!~~