結果
問題 |
No.736 約比
|
ユーザー |
![]() |
提出日時 | 2019-03-01 14:34:15 |
言語 | Go (1.23.4) |
結果 |
TLE
|
実行時間 | - |
コード長 | 788 bytes |
コンパイル時間 | 10,882 ms |
コンパイル使用メモリ | 222,864 KB |
実行使用メモリ | 13,756 KB |
最終ジャッジ日時 | 2024-06-23 12:04:15 |
合計ジャッジ時間 | 14,401 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 5 TLE * 1 -- * 59 |
ソースコード
package main import ( "fmt" "math" "strings" ) func main() { var n, a int _, _ = fmt.Scan(&n) min1, min2 := math.MaxInt64, math.MaxInt64 nums := make([]int, n) for i := range nums { _, _ = fmt.Scan(&a) nums[i] = a if min1 > a { min1, min2 = a, min1 } else if min2 > a { min2 = a } } list := make([]int, 0) // min1とmin2の約数のリスト for i := 2; i <= min1; i++ { if min1%i == 0 && min2%i == 0 { list = append(list, i) } } for i := len(list) - 1; i >= 0; i-- { r := true for _, a := range nums { if a%list[i] != 0 { r = false break } } if r { for j := range nums { nums[j] /= list[i] } break } } s := "" for _, a := range nums { s += fmt.Sprintf("%d:", a) } fmt.Println(strings.Trim(s, ":")) }