AcWing 874 篩法求尤拉函式

2021-10-19 14:41:16 字數 633 閱讀 2641

這道題並不簡單,你要會用尤拉篩去篩尤拉數。

說說思路。

首先和尤拉篩質數一樣,先把質數篩出來,質數的尤拉數為本身減1,因為質數與前面的數都互質。

然後用質數去更新下乙個數,篩除合數的同時,去更新合數的尤拉數,其中有幾個特殊的地方。

#include

using

namespace std;

const

int n=

1e6+10;

int prime[n]

,cnt,euler[n]

;bool st[n]

;void

get_eulers()

euler[t]

=(prime[j]-1

)*euler[i]

;//說明t的prime[j]的個數為1,所以要乘以prime[j]-1

//建議看一下尤拉函式。}}

}int

main

(void

)

AcWing 874 篩法求尤拉函式

題目描述 給定乙個正整數n,求1 n中每個數的尤拉函式之和。輸入格式 共一行,包含乙個整數n。輸出格式 共一行,包含乙個整數,表示1 n中每個數的尤拉函式之和。資料範圍 1 n 10 6 輸入樣例 6輸出樣例 12分析 求1到n中每個數的尤拉函式之和,顯然乙個個呼叫計算尤拉函式的公式時間複雜度是極高...

874 篩法求尤拉函式

給定乙個正整數n,求1 n中每個數的尤拉函式之和。輸入格式 共一行,包含乙個整數n。輸出格式 共一行,包含乙個整數,表示1 n中每個數的尤拉函式之和。資料範圍 1 n 106 輸入樣例 6輸出樣例 12想法 涉及到在範圍內的質數,則使用線性篩法 include using namespace std...

874 篩法求尤拉函式

給定乙個正整數 n 求 1 n 中每個數的尤拉函式之和。共一行,包含乙個整數 n 共一行,包含乙個整數,表示 1 n 中每個數的尤拉函式之和。資料範圍 1 n 10 6 輸入樣例 6輸出樣例 12eratosthenes篩法求尤拉函式 problem 篩法求尤拉函式 contest acwing u...