Pagini recente » Cod sursa (job #45420) | Cod sursa (job #2350587) | Cod sursa (job #459677) | Cod sursa (job #49497) | Cod sursa (job #238391)
Cod sursa(job #238391)
program frac;
var f:text;
d,m,n,p,i,n1,r,s,j,prod,cat,r1:int64;
fp:array[1..10000] of int64;
a:array[1..10000000] of 0..1;
begin
assign(f,'frac.in');
reset(f);
readln(f,n,p);
close(f);
assign(f,'frac.out');
rewrite(f);
d:=2;
m:=0;
n1:=n;
while (n<>1) and (d*d<n) do
begin
if n mod d=0 then begin
m:=m+1;
fp[m]:=d;
while n mod d=0 do n:=n div d;
end;
d:=d+1;
end;
if n<>1 then begin
m:=m+1;
fp[m]:=n
end;
prod:=n1;
for i:=1 to m do
prod:=(prod div fp[i])*(fp[i]-1);
cat:=p div prod;
r1:=p mod prod;
for i:=1 to m do
begin
j:=0;
while j<n1 do
begin
j:=j+fp[i];
a[j]:=1;
end;
end;
i:=0;
s:=0;
repeat
i:=i+1;
if a[i]=0 then s:=s+1;
until s=r1;
write(f,i+cat*n1);
close(f)
end.