PASCAL ** вход с клавиатуры получаем число, не превосходящее 10^9. Вывести все его...

0 голосов
66 просмотров

PASCAL
На вход с клавиатуры получаем число, не превосходящее 10^9. Вывести все его простые делители, между ними - звездочки. Например, для числа 36 выводом должно быть 2*2*3*3.


Информатика (503 баллов) | 66 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
(671 баллов)
0

trunc обнуляет все после запятой

0

Ну да, и что? Целое же количество итераций должно быть

0

Не дави интеллектом, объясни

0

xD

0

Ну ты понимаешь, как проверить, простое ли число?

0

В математике - знаю, про решето Эратосфена знаю, как это перенести в паскаль - нет, как еще и сделать это эффективно - тем более.

0

В Pascal ABC.net, в примерах есть программа "Решето Эратосфена". Понятия не имею, что это=D

0

Если ты до того, как определить, простое ли большое число, своими силами дошел, это, конечно, хорошо, но что ты тогда на этом сайте забыл? Здесь вроде как помогают понять как делать, а "решения в уме" полезны только тому, кто их умеет совершать.

0

Repeat
i:=i+2; - прибавляем двойку, чтобы исключить нечётные числа, т.к. все 2 мы исключили в предыдущем цикле
While A mod i = 0 do Если A не делится на i нацело, то цикл repeat ещё раз прибавит к i двойку
Begin
S:=S+'*'+IntToStr(i); Если A делится нацело на i, то i будет выведено на экран
A:=A div i Переменная A разделится на i, и цикл While снова проверит, делится ли A на то же самое i, ещё, если же нет, i снова увеличится
End
Until i>N;

0

Спасибо.