
Anaswyn
4 год назад
Требовалось написать программу, которая для введённого натурального числа n выводит общее количество его различных делителей, включая 1 и n. К сожалению, ученик написал программу с ошибками:Pascalvar n, j, k : integer;beginread(n);j := 2;k := 0;while j * j < n do beginif n mod j = 0 thenk := k + 2;j := j + 1end;if j * j = n thenk := k + 3;write(k)end.Последовательно выполните следующее.1. Напишите, что выведет эта программа при вводе числа 10.2. Укажите два наименьшихзначения входной переменной n, при вводе которого программа выведет правильный ответ. Укажите это ответ в каждом случае.3. Найдите в программе все ошибки (их может быть одна или неКак узнать сколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
ОТВЕТЫ

Kondrat
Oct 24, 2020
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).
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).
810
Смежные вопросы: