Требовалось написать программу, которая для введённого натурального числа n выводит общее количество его различных делителей, включая 1 и n. к сожалению, ученик написал программу с ошибками: pascal var n, j, k : integer; begin read(n); j : = 2; k : = 0; while j * j < n do begin if n mod j = 0 then k : = k + 2; j : = j + 1 end; if j * j = n then k : = k + 3; write(k) end. последовательно выполните следующее. 1. напишите, что выведет эта программа при вводе числа 10. 2. укажите два наименьших значения входной переменной n, при вводе которого программа выведет правильный ответ. укажите это ответ в каждом случае. 3. найдите в программе все ошибки (их может быть одна или несколько). для каждой ошибки выпишите строку, в которой она допущена, и эту же строку в исправленном виде.
150
386
Ответы на вопрос:
1) при вводе n = 10 будет выведено 2, хотя на самом деле должно быть 4 (1, 2, 5, 10). 2) при n = 4 или n = 9 будет выведен правильный ответ при n = 4, k = 3, при n = 9, к = 3 3) ошибка в строке k : = 0; должно быть k: =2; - для делителей 1 и nошибка в строке k : = k + 3; должно быть k: =k+1, если число n - полный квадрат, то добавляется делитель кор.квадр(n).
Популярно: Информатика
-
ЛордМирак22.03.2020 10:26
-
Ramzi08530.11.2020 02:27
-
TRIPLEN25.04.2021 14:16
-
Kirillik1709111.06.2021 09:48
-
nikafolz09.12.2020 01:06
-
smirnovadara74709.11.2020 11:38
-
тупойчеловек37626.03.2023 19:03
-
maloy442417.07.2022 06:49
-
Matveyka1613.01.2022 05:17
-
alistas20.11.2020 08:47