AcWing 869. 试除法求约数-代码注释-golang
原题链接
简单
作者:
望哥
,
2020-07-17 16:46:08
,
所有人可见
,
阅读 572
package main
import "fmt"
import "bufio"
import "os"
import "sort"
var reader = bufio.NewReader(os.Stdin)
var writer = bufio.NewWriter(os.Stdout)
// divisor 试除法求约数
func divisor(a int) []int{
var d[]int
// 只需循环到a/i,循环内部会取对称的约数
for i:=1;i<=a/i;i++{
// 约数判断
if a%i == 0{
d=append(d,i)
// 除数的结果也是约数
if i!=a/i{
d=append(d, a/i)
}
}
}
// 排序
sort.Ints(d)
return d
}
func main(){
var n,a int
fmt.Fscan(reader,&n)
for i:=0;i<n;i++{
fmt.Fscan(reader, &a)
for _,d:=range divisor(a){
fmt.Fprintf(writer, "%d ", d)
}
fmt.Fprintln(writer)
}
writer.Flush()
}