Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.34 KB | None | 0 0
  1. program cat4;
  2.    
  3.     var
  4.    
  5.       a,b, q, d, g, p,z, min, l: qword;
  6.     begin
  7.       Assign(input, 'input.txt'); reset(input);
  8.       Assign(output, 'output.txt');rewrite(output);
  9.       Read(a,b,q);
  10.      
  11.       d := 2;
  12.       p := q;
  13.       min := high(qword);
  14.       z := 0;
  15.  
  16.      
  17.       while (d <= q div d) do
  18.       begin
  19.         if (q mod d = 0) then
  20.         begin
  21.          
  22.           l := 0;
  23.           g := d;
  24.           z := 0;
  25.          
  26.           while (q mod d = 0) do
  27.           begin
  28.             l:=l+1;
  29.             q := q div d;
  30.           end;
  31.                              
  32.           while (b div g > 0) do
  33.           begin
  34.             z := z + (b div g) - ((a - 1) div g);
  35.             if (g <= high(qword) div d) then
  36.               g := d * g else break;
  37.           end;
  38.          
  39.           z := z div l;
  40.           if z < min then min := z;
  41.         end;
  42.        
  43.         d:=d+1;
  44.        
  45.       end;
  46.      
  47.       if (q > 1) then
  48.       begin
  49.        
  50.       p := q;
  51.       z := 0;
  52.      
  53.         while (b div q > 0) do
  54.         begin
  55.           z := z + (b div q) - ((a - 1) div q);
  56.           if (p <= high(qword) div q) then
  57.             q := q * p else break;
  58.         end;
  59.        
  60.         if z < min then   min := z;
  61.          
  62.       end;
  63.      
  64.       write( min);
  65.       Close(output);
  66.     end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement