結果

問題 No.2829 GCD Divination
ユーザー 👑 p-adic
提出日時 2024-06-20 15:34:49
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 177 ms / 2,000 ms
コード長 530 bytes
コンパイル時間 89 ms
コンパイル使用メモリ 12,672 KB
実行使用メモリ 11,136 KB
最終ジャッジ日時 2024-06-20 23:01:56
合計ジャッジ時間 3,026 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 35
権限があれば一括ダウンロードができます

ソースコード

diff #

R=range
L=9**4
P=[]
C=[0]*L
for i in R(2,L):
	if C[i]<1:
		P+=[i];j=i*i
		while j<L:C[j],j=1,j+i
E={}
def e(n):
	if n in E:return E[n]
	a=m=n
	for p in P:
		c=0
		while n%p<1:n//=p;c+=1
		if c:a=a//p*(p-1)
	if n>1:a=a//n*(n-1)
	E[m]=a
	return a
F={1:0}
def f(n):
	if n in F:return F[n]
	D=[1];m=n
	for p in P:
		c=0
		while n%p<1:n//=p;c+=1
		r=len(D)
		for i in R(c):D+=[d*p for d in D[-r:]]
	r=len(D)
	if n>1:D+=[d*n for d in D[-r:]];r*=2
	F[m]=(m+sum(f(m/D[d])*e(D[d])for d in R(1,r)))/(m-1)
	return F[m]
print(f(int(input())))
0