http://acm.pku.edu.cn/JudgeOnline/problem?id=1091
Код:
program PKU1091;
type integer = longint;
var n, m, i, j: integer;
s, k: comp;
begin
readln(n, m);
s := 1; i := 2;
while m > 1 do begin
if m mod i = 0 then begin
k := 1;
for j := 1 to n do k := k * i;
s := s * (k - 1);
m := m div i;
while m mod i = 0 do begin
s := s * k;
m := m div i;
end;
end;
i := i + 1;
if 1.0 * i * i > m then i := m;
end;
writeln(s:1:0);
end.