演算法模板 單個值尤拉函式

2022-01-10 22:31:10 字數 772 閱讀 9632

輸入n,輸出phi(n)

這樣的單個值尤拉函式程式一般見於部分數論題,以及有時候求逆元且取模的數不是質數的情況(逆元:a/b=a*bphi(p)-1 (mod p),一般常見題中p是質數,phi(p)-1=p-2)

(tip:我是來水經驗的不解釋,不過話說真的好久沒寫這個了tt)

1

vari:int64;

2function

eula(x:int64):int64;

3var

res:int64;i:longint;

4begin

5 res:=x;

6for i:=2

to trunc(sqrt(x)) do

7begin

8if (x mod i)=0

then

9begin

10 res:=(res div i)*(i-1

);11

while (x mod i)=0

do x:=x div

i;12

end;

13end;14

if x>1

then res:=(res div x)*(x-1

);15

exit(res);

16end;17

begin

18readln(i);writeln(eula(i));

19readln;

20end.

尤拉函式(模板)

尤拉函式介紹 尤拉函式,在數論中用於求解 1 n 中與 n 互質數個數 的函式,因為研究者為尤拉,故命名為尤拉函式。通式 x x 1 1 p1 1 1 p2 1 1 p3 1 1 p4 1 1 pn 其中p1,p2 pn為x的所有質因數,x是不為0的整數。1 1 唯一和1互質的數 小於等於1 就是1...

尤拉函式模板

對正整數n,尤拉函式是少於或等於n的數中與n互質的數的數目。例如euler 8 4,因為1,3,5,7均和8互質。euler函式表達通式 euler x x 1 1 p1 1 1 p2 1 1 p3 1 1 p4 1 1 pn 其中p1,p2 pn為x的所有素因數,x是不為0的整數。euler 1 ...

尤拉函式模板

對正整數n,尤拉函式是少於或等於n的數中與n互質的數的數目。例如euler 8 4,因為1,3,5,7均和8互質。euler函式表達通式 euler x x 1 1 p1 1 1 p2 1 1 p3 1 1 p4 1 1 pn 其中p1,p2 pn為x的所有素因數,x是不為0的整數。euler 1 ...