Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var b, c, d, f, x, counter: longint;
- begin
- readln(b, c, d, f);
- counter := 0; // Счётчик целых корней.
- for x := abs(f) downto 1 do begin // Можно было бы начинать от abs(f) div 2,
- // потому что от abs(f) до abs(f/2) ничего не сможет нацело поделить f (кроме самого f),
- // но тогда надо было бы делать пристройки для случая f, а за скоростью мы не гонимся.
- // Так же, уточню, что abs() для того, что бы цикл нормально работал, это не меняет делимости.
- if (f/x = f div x) then begin // Если оно нацело делится...
- if ((x*x*x*x + b*x*x*x + c*x*x + d*x + f) = 0) then begin // Если корень, собственно, подходит:
- counter := counter + 1;
- writeln('Целый корень №', counter, ': ', x);
- end;
- if ((x*x*x*x - b*x*x*x + c*x*x - d*x + f) = 0) then begin // Если корень вдруг отрицателен,
- // он же всё равно нацело делит f.
- counter := counter + 1;
- writeln('Целый корень №', counter, ': ', -x);
- end;
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement