Предмет: Информатика,
автор: Bulgarifullin2
программа паскаль. пользователь вводит целое число, надо его вывести как несколько простых (пример 112=2*2*2*2*7)
Ответы
Автор ответа:
0
Поиск простых делителей числа:
var i,j,n:longint;
f:boolean;
begin
writeln('Введите число');
readln(n);
if n<2 then writeln('Простых делителей нет')
else
begin
write('Число ',n,' ','= 1');
for i:=2 to n do
if n mod i=0 then
begin
f:=true;
j:=2;
while f and(j<=round(sqrt(i/2)))do
begin
if i mod j=0 then f:=false
else j:=j+1;
end;
if f then write('*',i);
end;
end;
end.
Тестовое решение:
Введите число
2345
Число 2345 = 1*5*7*35*67
var i,j,n:longint;
f:boolean;
begin
writeln('Введите число');
readln(n);
if n<2 then writeln('Простых делителей нет')
else
begin
write('Число ',n,' ','= 1');
for i:=2 to n do
if n mod i=0 then
begin
f:=true;
j:=2;
while f and(j<=round(sqrt(i/2)))do
begin
if i mod j=0 then f:=false
else j:=j+1;
end;
if f then write('*',i);
end;
end;
end.
Тестовое решение:
Введите число
2345
Число 2345 = 1*5*7*35*67
NeznaikaNaLune2017:
var n : integer ; function foo ( i , d : integer ) : integer ; begin if ( d = i ) then writeln ( d ) else if ( ( i mod d ) = 0 ) then begin write ( d , '*' ) ; foo ( i div d , d ) ; end else begin while ( ( d <= i ) AND ( ( i mod d ) <> 0 ) ) do d := d + 1 ; foo ( i , d ) ; end ; end; begin write ('vvedite chislo n=' ) ; read ( n ) ; write ( n , '=' ) ; if ( n > 3 ) then foo ( n , 2 ) else writeln ( n ) ; end.
Похожие вопросы
Предмет: География,
автор: Аноним
Предмет: Алгебра,
автор: dvorko67
Предмет: Химия,
автор: Аноним
Предмет: Математика,
автор: xajrullina1967
Предмет: Математика,
автор: 123456795003