結果
| 問題 | 
                            No.1200 お菓子配り-3
                             | 
                    
| コンテスト | |
| ユーザー | 
                            👑  Kazun
                         | 
                    
| 提出日時 | 2020-09-22 22:11:15 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                TLE
                                 
                             
                            
                            (最新)
                                AC
                                 
                             
                            (最初)
                            
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 676 bytes | 
| コンパイル時間 | 226 ms | 
| コンパイル使用メモリ | 82,100 KB | 
| 実行使用メモリ | 76,824 KB | 
| 最終ジャッジ日時 | 2024-06-26 21:53:08 | 
| 合計ジャッジ時間 | 37,500 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge4 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 30 TLE * 1 | 
ソースコード
#約数全部
def Divisors(N):
    N=abs(N)
    L,U=[],[]
    k=1
    while k*k <=N:
        if N%k== 0:
            L.append(k)
            if k!=N//k:
                U.append(N//k)
        k+=1
    return L+U[::-1]
#====================================
S=int(input())
L=[0]*S
for i in range(S):
    X,Y=map(int,input().split())
    D=Divisors(X+Y)
    K=0
    for d in D:
        if d==1:
            continue
        elif d==2:
            if X==Y:
                K+=X-1
        else:
            A=d-1
            B2=A*X-Y
            C2=-X+A*Y
            if B2>0 and C2>0 and B2%(A*A-1)==C2%(A*A-1)==0:
                K+=1
    L[i]=K
print("\n".join(map(str,L)))
            
            
            
        
            
Kazun