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

全部博文(12)

文章存档

2017年(11)

2016年(1)

我的朋友

分类: 高性能计算

2017-03-02 23:15:25

题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 

package main

import (
    "fmt"
    "math"
)

func divi(div int) (int, int) {
    var i int

    for i = 2; i <= int(math.Sqrt(float64(div))); i++ {
        if div%i == 0 {
            return i, div / i
        }
    }
    return 1, div
}

func main() {
    var num, temp, buf int

    fmt.Scanf("%d", &num)
    fmt.Printf("%d = ", num)

    buf = num
    for temp != 1 {
        temp, buf = divi(buf)
        if buf == num {
            fmt.Printf("%d * 1", num)
            return
        } else if temp == 1 {
            fmt.Printf("%d", buf)
        } else {
            fmt.Printf("%d * ", temp)
        }
    }
}
运行结果:

90

90 = 2 * 3 * 3 * 5

...

2489

2489 = 19 * 131

...

45678

45678 = 2 * 3 * 23 * 331

阅读(465) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~