poj 2478(快速求解尤拉函式優化版。。。)

2021-05-27 21:04:32 字數 415 閱讀 2928

之前一直在用

void get_eular() {

memset(eul,0,sizeof(eul));

eul[1]=1;

for(int i=2;i

然後按照優化方案來寫程式。。。進入了100ms以內了。。。。嗨皮。。

#include #include #includeusing namespace std;

const int maxlen=1000010;

long long eul[maxlen];

int pri[maxlen],f[maxlen],isprim[maxlen],p=0;

inline void get_prim(){

memset(isprim,1,sizeof(isprim));

for(int i=2;i

尤拉函式 POJ 2478 尤拉篩法

通式 phi x x 1 frac 1 frac 1 frac cdots 1 frac 若n是質數p的k次冪 phi n p k p p 1 p 因為除了p的倍數外,其他數都跟n互質。設n為正整數,以 phi n 表示不超過n且與n互素的正整數的個數,稱為n的尤拉函式值,這裡函式 n n,n n ...

poj 2478 線性篩素數 尤拉函式

由於2 n 10 6,所以一般的求尤拉函式方法用不上,而我們可以根據他的乙個性質 設a為n的質因數,若 n a 0 n a a 0 則有e n e n a a 若 n a 0 n a a 0 則有 e n e n a a 1 進行求解,而現在首要的任務就是求質因數a,我們可以利用線性篩素數時產生的n...

線性方法求尤拉數 POJ2478

1.當需要求1到n的尤拉數之和時用線性方法 本題 2.當需要求單個尤拉數但資料很大用標準方法求 例如 線性的方法求尤拉數 模板 include include define ll long long const int maxn 1000010 int dp maxn ll a maxn int m...