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.