結果
| 問題 | No.816 Beautiful tuples | 
| コンテスト | |
| ユーザー |  tsuchinaga | 
| 提出日時 | 2019-04-20 23:45:58 | 
| 言語 | Go (1.23.4) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 219 ms / 1,500 ms | 
| コード長 | 747 bytes | 
| コンパイル時間 | 12,506 ms | 
| コンパイル使用メモリ | 232,824 KB | 
| 実行使用メモリ | 6,824 KB | 
| 最終ジャッジ日時 | 2024-10-02 10:09:49 | 
| 合計ジャッジ時間 | 12,628 ms | 
| ジャッジサーバーID (参考情報) | judge4 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 15 | 
ソースコード
package main
import "fmt"
func main() {
	var a, b int
	_, _ = fmt.Scan(&a, &b)
	check := func(c int) bool {
		return a != c && b != c && (a+b)%c == 0 && (b+c)%a == 0 && (c+a)%b == 0
	}
	if check(1) {
		fmt.Println(1)
		return
	}
	// 素因数分解
	n := a + b
	pn := make([]int, 0)
	for i := 2; i < n+1; i++ {
		if n%i == 0 {
			is := true
			for _, p := range pn {
				if i%p == 0 {
					is = false
					break
				}
			}
			if is {
				for n%i == 0 {
					n /= i
					// fmt.Println(i, n)
					pn = append(pn, i)
				}
			}
		}
	}
	// fmt.Println(pn)
	pattern := map[int]int{1: 1}
	for _, p := range pn {
		for q := range pattern {
			if check(p * q) {
				fmt.Println(p * q)
				return
			}
			pattern[p*q] = 1
		}
	}
	fmt.Println(-1)
}
            
            
            
        