Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- Назовём нетривиальным делителем натурального числа его делитель,
- не равный единице и самому числу. Например, у числа 6 есть два нетривиальных делителя: 2 и 3.
- Найдите все натуральные числа, принадлежащие отрезку [123456789; 223456789] и имеющие ровно
- три нетривиальных делителя. Для каждого найденного числа запишите в ответе его наибольший
- нетривиальный делитель. Ответы расположите в порядке возрастания.
- Например, в диапазоне [5; 16] ровно три различных натуральных делителя имеет число 16,
- поэтому для этого диапазона вывод на экране должна содержать следующие значения: 16 8
- }
- program p25;
- uses crt;
- var a : integer;
- b : integer;
- x : integer;
- division : integer;
- x_start, x_end : integer;
- isPrime : boolean;
- begin
- a := 123456789;
- b := 223456789;
- writeln('Корень 4-й степени из a: ', power(a, 1/4),
- ' ~ ', trunc(power(a, 1/4)));
- writeln('Корень 4-й степени из b: ', power(b, 1/4),
- ' ~ ', trunc(power(b, 1/4)));
- writeln;
- x_start := trunc(power(a, 1/4));
- x_end := trunc(power(b, 1/4));
- for x := x_start to x_end do begin
- isPrime := true;
- if ( trunc(sqrt(x)) = sqrt(x) ) then isPrime := false;
- for division := 2 to trunc(sqrt(x)) - 1 do
- if ( x mod division = 0 ) then begin
- isPrime := false;
- break;
- end;
- if (isPrime = true) then
- writeln('Число = ', power(x, 4),' : MAX делитель = ', power(x, 3));
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement