結果
| 問題 | 
                            No.3022 一元一次式 mod 1000000000
                             | 
                    
| コンテスト | |
| ユーザー | 
                             detteiuu
                         | 
                    
| 提出日時 | 2025-02-14 22:49:21 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 419 ms / 2,000 ms | 
| コード長 | 427 bytes | 
| コンパイル時間 | 224 ms | 
| コンパイル使用メモリ | 82,712 KB | 
| 実行使用メモリ | 77,300 KB | 
| 最終ジャッジ日時 | 2025-02-17 12:57:30 | 
| 合計ジャッジ時間 | 2,864 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge2 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 21 | 
ソースコード
from math import gcd, lcm
MOD = 10**9
def inverse(n, d, MOD):
    return n * pow(d, -1, MOD) % MOD
for _ in range(int(input())):
    N, M = map(int, input().split())
    X = (-M)%MOD
    if X == 0:
        print(lcm(N, MOD)//N)
        continue
    GCD = gcd(N, MOD)
    if X%GCD != 0:
        print(-1)
        continue
    GCD = gcd(N, MOD, X)
    n = N//GCD
    m = MOD//GCD
    x = X//GCD
    print(inverse(x, n, m))
            
            
            
        
            
detteiuu