• Предмет: Информатика
  • Автор: semenishchevp
  • Вопрос задан 3 года назад

80 баллов
Напишите рекурсивную функцию, которая раскладывает число на простые сомножители.
Пример:
Введите натуральное число:
378
378 = 2*3*3*3*7


semenishchevp: PYTHON

Ответы

Ответ дал: simkarynetka
1

Ответ:

var n:integer;

procedure del(x:integer);

var d:integer;

begin

d:=2;

if(x>1)then begin

while x mod d<>0 do d:=d+1;

if(x div d >1)then write(d,'*')

else write(d);

del(x div d)

end

else exit;

end;

begin

read(n);

write(n, ' = ');

if(n<2) then write(n)

else del(n);

end.

Объяснение:


semenishchevp: ой извеняюсь на петоне можно?
maxpavlutenkof: res = list()

def isProst(a):
b = 2
while a % b != 0: b += 1
return b == a

def func(a):
for i in range(2, int(a) + 1):
if a % i == 0 and isProst(i):
res.append(str(i))
func(a / i)
break

func(int(input()))
print('*'.join(res))
maxpavlutenkof: *ах да... заменить - на табуляцию
maxpavlutenkof: res = list()

def isProst(a):
-b = 2
-while a % b != 0: b += 1
-return b == a

def func(a):
-for i in range(2, int(a) + 1):
--if a % i == 0 and isProst(i):
---res.append(str(i))
---func(a / i)
---break

func(int(input()))
print('*'.join(res))
Ответ дал: tanya0714
0

Ответ:

Я думаю на фото всё понятно

Приложения:

semenishchevp: ребят кто шарит можете петон плиз
semenishchevp: вопрос перезадать на 100 балловв могу
Вас заинтересует