輸入n,輸出phi(n)
這樣的單個值尤拉函式程式一般見於部分數論題,以及有時候求逆元且取模的數不是質數的情況(逆元:a/b=a*bphi(p)-1 (mod p),一般常見題中p是質數,phi(p)-1=p-2)
(tip:我是來水經驗的不解釋,不過話說真的好久沒寫這個了tt)
1vari: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 ...