Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program project1;
- var A, B, q, M, k, Mmin, kp, l: uint64;
- f0, f1: text;
- begin
- assign(f0, 'input.txt');
- reset(f0);
- read(f0, A, B, q);
- close(f0);
- assign(f1, 'output.txt');
- rewrite(f1);
- k:=2;
- Mmin:=high(uint64);
- while k <= q div k do
- Begin
- If q mod k = 0 then
- Begin
- l:=0;
- While (q mod k = 0) do
- Begin
- inc(l);
- q:=q div k;
- End;
- M:=0;
- kp:=k;
- while kp <= B do
- Begin
- M:=M + ((B div kp) - ((A - 1) div kp));
- if kp <= high(uint64) div k then
- kp:=kp*k else break;
- End;
- M:=M div l;
- if M < Mmin then Mmin:=M;
- end;
- Inc(k);
- End;
- If q > 1 then
- Begin
- kp:=q;
- M:=0;
- while kp <= B do
- Begin
- M:=M + ((B div kp) - ((A - 1) div kp));
- if kp <= (high(uint64) div q) then
- kp:=kp*q else break;
- End;
- if M < Mmin then Mmin:=M;
- end;
- write(f1, Mmin);
- close(f1);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement