N = int(input())
s = 1
for i in range(2, n//2+1):
if n % i == 0: s = s+i
if s == n:
print("Совершенное")
else:
print("Не совершенное")
Пример:
6
<span>Совершенное</span>
Операция div - это целочисленное деление, т.е. сколько раз поместится число 3 в числе 8. Ответ будет 8/3=2
Есть еще другое деление - mod, т.е. остаток от целочисленного деления.
Если 8 mod 3 = 666666666666667
Самое простое из того, что смог придумать. Перебираем числа до половины необходимого (больше нет смысла) (for i := 2 to number div 2 do) и ищем есть ли делители (number mod i = 0). Выводим сообщение.
var
number, i : integer;
begin
write('Число: ');
readln(number);
for i := 2 to number div 2 do
if number mod i = 0 then
begin
writeln('Число не является простым, оно делится, как минимум, на ', i);
Exit;
end;
writeln('Число является простым');
end.
576,25₈=382,2₁₀
.................
1000000 Битов страница учебника