結果
| 問題 | No.3687 Coprime Count |
| コンテスト | |
| ユーザー |
tomerun
|
| 提出日時 | 2026-09-06 18:27:52 |
| 言語 | Crystal (1.21.0 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 733 ms / 2,000 ms |
| + 673µs | |
| コード長 | 471 bytes |
| 記録 | |
| コンパイル時間 | 7,483 ms |
| コンパイル使用メモリ | 327,348 KB |
| 実行使用メモリ | 52,352 KB |
| 最終ジャッジ日時 | 2026-09-06 18:28:08 |
| 合計ジャッジ時間 | 10,979 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 10 |
ソースコード
n, m = read_line.split.map(&.to_i)
k = {n, m}.min
is_prime = Array.new(k + 1, true)
mu = Array.new(k + 1, 1)
mu[0] = 0
ans = n.to_i64 * m
2.upto(k) do |i|
if is_prime[i]
(i * 2).step(to: k, by: i) do |j|
is_prime[j] = false
mu[j] *= -1
end
mu[i] *= -1
mu[i * i] = 0 if i.to_i64 * i <= k
end
if mu[i] == 0
(i * 2).step(to: k, by: i) do |j|
mu[j] = 0
end
end
ans += (n.to_i64 // i) * (m.to_i64 // i) * mu[i]
end
puts ans
tomerun