Advertisement
Laster_Alex

Z3

Feb 17th, 2022
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.42 KB | None | 0 0
  1. var b, c, d, f, x, counter: longint;
  2. begin
  3.     readln(b, c, d, f);
  4.    
  5.     counter := 0; // Счётчик целых корней.
  6.    
  7.     for x := abs(f) downto 1 do begin  // Можно было бы начинать от abs(f) div 2,
  8.     // потому что от abs(f) до abs(f/2) ничего не сможет нацело поделить f (кроме самого f),
  9.     // но тогда надо было бы делать пристройки для случая f, а за скоростью мы не гонимся.
  10.     // Так же, уточню, что abs() для того, что бы цикл нормально работал, это не меняет делимости.
  11.         if (f/x = f div x) then begin  // Если оно нацело делится...
  12.             if ((x*x*x*x + b*x*x*x + c*x*x + d*x + f) = 0) then begin  // Если корень, собственно, подходит:
  13.                 counter := counter + 1;
  14.                 writeln('Целый корень №', counter, ': ', x);
  15.             end;
  16.             if ((x*x*x*x - b*x*x*x + c*x*x - d*x + f) = 0) then begin  // Если корень вдруг отрицателен,
  17.             // он же всё равно нацело делит f.
  18.                 counter := counter + 1;
  19.                 writeln('Целый корень №', counter, ': ', -x);
  20.             end;
  21.         end;
  22.     end;
  23. end.
  24.  
  25.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement