Необходимо составить программу и получить все совершенные числа до предела в 65000

емкость неформатированного диска больше информационной емкости доступной для записи данных, т.е. отформатированного диска.

Ответ разместил: Гость
Ответ разместил: Гость

program m; uses crt; var k,s: real; i: integer; beginclrscr; for i: =1 to 10 dobegink: =i/(i+1); s: =s+k; end; writeln(s: 2: 2); readkey; end.

Другие вопросы по: Информатика

  • Ответов: 3
  • 04.03.2019 05:40
  • Ответов: 2
  • 06.03.2019 16:20
  • Ответов: 3
  • 06.03.2019 18:50
  • Ответов: 1
  • 08.03.2019 10:50
  • Ответов: 2
  • 08.03.2019 16:20
  • Ответов: 1
  • 09.03.2019 21:00

Знаешь правильный ответ?

с решением. Распланировать этапы решения задачи и составить алгоритм её выполнения: Составить програ.

Источник: vse-znaniya.com

Стивен Уильям Хокинг. Теория всего. Происхождение и судьба Вселенной.

Задача — Найти совершенные числа — программирование на разных языках

Задача - Найти совершенные числа - программирование на разных языках

Задача — Найти совершенные числа
— программирование на Pascal, Си, Кумир, Basic-256, Python

Найти все совершенные числа до 10000. Совершенное число — это такое число, которое равно сумме всех своих делителей, кроме себя самого. Например, число 6 является совершенным, т.к. кроме себя самого делится на числа 1, 2 и 3, которые в сумме дают 6.

В цикле, перебирая натуральные числа до 10000,

  1. присвоить переменной, в которой будет накапливаться сумма делителей, 0.
  2. В цикле от 1 до половины текущего натурального числа
  1. пытаться разделить исследуемое число нацело на счетчик внутреннего цикла.
  2. Если делитель делит число нацело, то добавить его к переменной суммы делителей.

Pascal var
i,j,s: word;
begin
for i := 1 to 10000 do begin
s := 0;
for j:=1 to i div 2 do
if i mod j = 0 then
s := s+j;
if s = i then
write(i,’ ‘);
end;
writeln;
end. 6 28 496 8128 Язык Си #include
main() {
int i,j,s,l;
for (i=2; i s = 0;
for (j=1; j < i; j++)
if (i%j == 0)
s += j;
if (s == i)
printf(«%dn», i);
}
}

Читайте также:
Как устанавливать ехе программы на Андроид

Если i поделить на 2, то программа работает неправильно. В Питоне такая же проблема.

Python for i in range(2,10000):
s = 0
for j in range(1,i):
if i%j == 0:
s += j
if s == i:
print(i)

КуМир алг совершенные числа
нач
цел i,j,s
нц для i от 1 до 1000
s := 0
нц для j от 1 до div(i,2)
если mod(i,j) = 0 то
s := s + j
все
кц
если s = i то
вывод i, » »
все
кц

Превыше свободы и чести | Б.Ф. Скиннер | #аудиокнига


кон

Невероятно долгий поиск даже до 1000.

Basic-256 for i=2 to 10000
s = 0
for j=1 to i2
if i%j = 0 then s = s + j
next j
if s = i then print i
next i 6
28
496
8128

Источник: ars-games.ru

Проверить, является ли заданное натуральное число совершенным

Формулировка. Дано натуральное число. Проверить, является ли оно совершенным.

Примечание: совершенным числом называется натуральное число, равное сумме всех своих собственных делителей (то есть натуральных делителей, отличных от самого числа). Например, 6 – совершенное число, оно имеет три собственных делителя: 1, 2, 3, и их сумма равна 1 + 2 + 3 = 6.

Решение. Эта задача напоминает задачу 17, в которой нужно было найти количество всех натуральных делителей заданного числа. Напомним код ее основной части (назовем его кодом 1):

for i := 1 to n do begin

if n mod i = 0 then inc(count)

Как видно, в этом цикле проверяется делимость числа n на все числа от 1 до n, причем при каждом выполнении условия делимости увеличивается на 1 значение счетчика count с помощью функции inc. Чтобы переделать этот код под текущую задачу, нужно вместо инкрементации (увеличения значения) переменной-счетчика прибавлять числовые значения самих делителей к некоторой переменной для хранения суммы (обычно ее мнемонически называют sum, что в пер. с англ. означает «сумма»). В связи с этим оператор

Читайте также:
Запуск программы невозможен так как отсутствует msvcr71

if n mod i = 0 then inc(count);

в коде 1 теперь уже будет выглядеть так:

if n mod i = 0 then sum := sum + i;

Кроме того, чтобы не учитывалось само число n при суммировании его делителей (насколько мы помним, этот делитель не учитывается в рамках определения совершенного числа), цикл должен продолжаться не до n, а до n – 1. Правда, если говорить точнее, то цикл следовало бы проводить до n div 2 (также это обсуждалось в задаче 15), так как любое число n не может иметь больших делителей, иначе частное от деления должно быть несуществующим натуральным число между 1 и 2.

Единственное, что останется теперь сделать – это вывести ответ, сравнив число n с суммой его делителей sum как результат булевского выражения через writeln:

Код:

  1. program PerfectNumbers;
  2. var
  3. i, n, sum: word;
  4. begin
  5. readln(n);
  6. sum := 0;
  7. for i := 1 to n div 2 do begin
  8. if n mod i = 0 then sum := sum + i
  9. end;
  10. writeln(n = sum)
  11. end.

Источник: pascalzadachi.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru