結果
問題 |
No.1723 [Cherry 3rd Tune *] Dead on
|
ユーザー |
|
提出日時 | 2022-01-25 14:02:54 |
言語 | Scala(Beta) (3.6.2) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,060 bytes |
コンパイル時間 | 14,937 ms |
コンパイル使用メモリ | 262,700 KB |
実行使用メモリ | 63,432 KB |
最終ジャッジ日時 | 2024-12-16 03:24:17 |
合計ジャッジ時間 | 57,268 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 34 WA * 16 |
ソースコード
import scala.annotation.tailrec import scala.io.StdIn.* def calcPrimeFactor(value: Long): List[(Long, Int)] = @tailrec def inner(v: Long, p: Long, e: Int, result: List[(Long, Int)]): List[(Long, Int)] = v match case 1 => if e == 0 then result else (p, e)::result case _ if v % p == 0 => inner(v / p, p, e + 1, result) case _ if e != 0 => inner(v, p + 1, 0, (p, e)::result) case _ if v < p * p => (v, 1)::result case _ => inner(v, p + 1, 0, result) inner(value, 2, 0, Nil) @main def main = val Array(x, a, y, b) = readLine().split(' ').map(_.toLong) @tailrec def isDividable(x: List[(Long, Int)], y: List[(Long, Int)]): Boolean = (x, y) match case (_, Nil) => true case (Nil, _) => false case ((px,ex)::xt, (py, ey)::yt) => if px == py then (ex * a) % (ey * b) == 0 && isDividable(xt, yt) else isDividable(xt, y) val xp = calcPrimeFactor(x) val yp = calcPrimeFactor(y) val result = isDividable(xp, yp) println(if result then "Yes" else "No")