結果
問題 |
No.1164 GCD Products hard
|
ユーザー |
![]() |
提出日時 | 2025-04-15 21:46:18 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 885 ms / 2,500 ms |
コード長 | 764 bytes |
コンパイル時間 | 267 ms |
コンパイル使用メモリ | 82,124 KB |
実行使用メモリ | 147,244 KB |
最終ジャッジ日時 | 2025-04-15 21:47:47 |
合計ジャッジ時間 | 14,593 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 27 |
ソースコード
MOD = 10**9 + 7 def sieve(n): if n < 2: return [] is_prime = bytearray([1]) * (n + 1) is_prime[0] = is_prime[1] = 0 for i in range(2, int(n**0.5) + 1): if is_prime[i]: is_prime[i*i::i] = b'\x00' * len(is_prime[i*i::i]) primes = [i for i, val in enumerate(is_prime) if val] return primes A, B, N = map(int, input().split()) primes = sieve(B) mod_minus1 = MOD - 1 result = 1 for p in primes: current_sum = 0 pm = p while pm <= B: cm = (B // pm) - ((A - 1) // pm) if cm == 0: break current_sum = (current_sum + pow(cm, N, mod_minus1)) % mod_minus1 pm *= p if current_sum != 0: result = (result * pow(p, current_sum, MOD)) % MOD print(result)