結果
| 問題 |
No.2249 GCDistance
|
| コンテスト | |
| ユーザー |
convexineq
|
| 提出日時 | 2023-06-29 15:58:03 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
OLE
|
| 実行時間 | - |
| コード長 | 771 bytes |
| コンパイル時間 | 321 ms |
| コンパイル使用メモリ | 82,284 KB |
| 最終ジャッジ日時 | 2024-07-06 06:44:15 |
| 合計ジャッジ時間 | 21,733 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | OLE * 1 |
| other | OLE * 10 |
ソースコード
import sys
readline = sys.stdin.readline
#n = int(readline())
#*a, = map(int,readline().split())
# b = [list(map(int,readline().split())) for _ in range()]
def enumerate_tortient(N):
primes = []
lpf = [0]*(N+1) # least prime factor
tor = [1]*(N+1); tor[0] = 0
for x in range(2,N+1):
if lpf[x] == 0:
lpf[x] = x
primes.append(x)
tor[x] = x-1
for p in primes:
if p > lpf[x] or x*p > N: break
lpf[x*p] = p
tor[x*p] = tor[x]*(p if lpf[x] == p else p-1)
return tor
T = int(readline())
N = 10**7
tor = enumerate_tortient(N)
print(tor)
tor[1] -= 1
for i in range(1,N+1):
tor[i] += tor[i-1]
for _ in range(T):
n = int(readline())
print(n*(n-1) - tor[n])
convexineq