尤拉計劃745:平方和
對於正整數,n,將g(n)定義為整除n的最大完全平方數。
例如,g(18)=9,g(19)=1。
同時定義
S(N)=sum(N g(N)){N=1~N}
例如,S(10)=24和S(100)=767。
計算S(10^{14})mod 1000000007。
測試指令碼
import math
import time
li=[]
def Sieve(n):
h = [True] * n
h[:2] = [False, False]
for i in range(2, int(n ** 0.5) + 1):
if h[i]:
h[i*i::i] = [False] * len(h[i*i::i]) #相當於步長為i的迴圈
for i, e in enumerate(h):
if e:
li.append(i)
li=[]
def f3(m):
x=[1 for i in range(0,m+1)]
Sieve(int(m**0.5))
for i in li:
for j in range(1,int(math.log(m,i)/2)+1):
n=i**(2*j)
for k in range(1,int(m/n)+1):
x[n*k]*=(i**2)
s=0
for i in range(1,m+1):s+=x[i]
return s
t=time.time();f3(10**8);print(time.time()-t)
724475280152
41.73160362243652
相關文章
- 尤拉計劃700:尤拉幣
- 尤拉計劃622:洗牌
- 尤拉計劃698:123數
- 尤拉計劃696:麻將
- 尤拉計劃719:拆分數
- 尤拉計劃699:三腳數
- 尤拉計劃706:三象數
- 尤拉計劃718:不可達數
- 尤拉計劃686:2的冪
- 尤拉計劃715:六元組
- 尤拉計劃709:偶數袋
- 尤拉計劃708:你只要2
- 尤拉計劃712:指數差
- 尤拉計劃749:近似冪和
- 尤拉計劃739:和的和
- 尤拉計劃751:串聯重合
- 尤拉計劃717:取模公式之和公式
- 尤拉計劃722:慢收斂系列
- 尤拉計劃695:隨機長方形隨機
- 尤拉計劃694:立方滿因數
- 尤拉計劃725:數位之和數
- 尤拉計劃710:1百萬會員
- 尤拉計劃723:畢達哥拉斯四邊形
- 尤拉計劃697:隨機衰減序列隨機
- 尤拉計劃713:圖蘭熱水系統
- 尤拉計劃711:二進位制黑板
- 尤拉計劃748:倒丟蕃多方程
- 尤拉計劃747:三角披薩
- 尤拉計劃657:不完整的單詞
- 尤拉計劃721:無理數高次冪
- 尤拉計劃701:隨機連線區域隨機
- 尤拉計劃714:兩種數位的數
- 尤拉計劃658:不完整的單詞(2)
- 尤拉計劃735:2n^2的因數
- 尤拉計劃705:除數序列的逆轉次數
- 尤拉計劃621:把整數表示為三角數之和
- 尤拉計劃704:二項式係數中的2因數
- 尤拉方程