• Дано натуральное число х, вывести на экран все делители этого числа. И я написал программу, пойдёт ли она под данное условие, и если нет, то что нужно поменять:
    program zadacha;
    var n,i:integer;
    begin
    i:=1;
    while(i begin
    if (n mod i=0) then write(i);
    end;
    writeln('n');
    end.

Ответы 2

  • Спасибо большое
    • Автор:

      mateo73
    • 6 лет назад
    • 0
  • 0. Ты никак не задаёшь n в программе. Тебе стоит хотя бы прочитать его: read(n);1. Что написано внутри условия цикла while? Если по твоему решению, должно быть "i <= n"2. Делители будут "прилипать" друг к другу, выводи так: write(i, ' ');3. Твой счётчик i не увеличивается, программа зациклится. После if'а вставь i := i + 1;Итоговый код:var n, i: integer;begin read(n); i := 1; while (i <= n) do begin if n mod i = 0 then write(i, ' '); i := i + 1; end; writeln('n');end.Есть, кстати, альтернативный способ поиска делителей. Выводить их он будет, правда, не в порядке возрастания.var n, i: integer;begin read(n); i := 1; while (i * i < n) do begin if n mod i = 0 then write(i, ' ', n div i, ' '); i := i + 1; end; if i * i = n then write(i, ' '); writeln('n');end.
    • Автор:

      thumper
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years