译题:
给定一个整数n,寻找有多少个不大于n的数与其互质。互质是指两个数的最大公约数是1。
输入
1个整数n
输出
输出答案
样例输入
9
样例输出
6
额,首先,这个题暴力可做。。。。。。。好像这就是它的通过率如此高的原因。
欧拉函数:
n=p[1]^t[1]*p[2]^t[2]*p[3]^t[3]........
p[1],p[2],p[3].....为质因数。
f[n]=n*((p[1]-1)/p[1])*((p[2]-1)/p[2])*((p[3]-1)/p[3])......
//sgu 102
program ACRush;
var n:longint;
v:array[0..10010]of boolean;
i,j,k,ans:longint;
begin
readln(n);
if n=1 then
begin
writeln(1);
halt;
end;
for i:=2 to 10010 do
if not v[i] then
begin
j:=i;
while j+i<=10010 do
begin
j:=j+i;
v[j]:=true;
end;
end;
ans:=n;
k:=n;
for i:=2 to n do
if not v[i] then
if n mod i=0 then
begin
ans:=ans div i;
ans:=ans*(i-1);
end;
writeln(ans);
end.