ВХОД

МЕТОДИЧЕСКИЕ РАЗРАБОТКИ ПО КУРСУ ИНФОРМАТИКИ

"ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ PASCAL"

Начало > Глава II. Простые, Совершенные > Задачи с решениями

ГЛАВА II

ЗАДАЧИ С РЕШЕНИЯМИ

Совершенные числа



1. Найти произведение совершенных чисел из 10 случайных, взятых в интервале[1, 10].
  Переход
Блок-схема

2. Поиск совершенных чисел в заданном с клавиатуры интервале.
  Переход
Блок-схема

3. Из 10 случайных чисел в интервале [1, 10] найти количество совершенных. Пояснение: фактически надо найти количество шестерок. Ответ может быть таким: 6 6 6 kch=3
  Переход
Блок-схема


4. Дано натуральное число N. Определить, является ли оно совершенным.
  Переход
Блок-схема

5. Вычислить ch/8+4, где ch - четвертое совершенное число.
  Переход
Блок-схема



1. Найти произведение совершенных чисел из 10 случайных, взятых в интервале[1, 10].

Ответ может быть таким:
8 9 9 1 5 4 10 9 1 9
совершенных чисел нет

или

8 1 3 1 9 6 8 6 8 2
произведение совершенных чисел=36

program sov_01;
uses crt;
var m: integer; p,ch,sum,i: integer;
    {m - количество чисел;
    i - делители;
    p - произведение чисел;
    ch - число;
    sum - сумма делителей }

begin clrscr;
randomize;
p:=1;
m:=1;
while m <= 10 do
    begin
    ch:= random(10)+1; write(ch:5); {берем случайное число в заданном интервале и выводим его на экран}
    sum :=0;
    For i:=1 to ch-1 do
      if ch mod i =0 then sum:=sum +i;

    if ch = sum then p:=p*ch;
    inc(m);
    end;

writeln;

if p > 1 then writeln('произведение совершенных чисел=',p)
else writeln('совершенных чисел нет')

end.

2. Поиск совершенных чисел в заданном с клавиатуры интервале.

program sov_02;
uses crt;
var num, sum, i, x1, x2: integer;
begin
clrscr;
readln (x1, x2); {границы числового интервала}


    for num:=x1 to x2 do
      begin
      sum:=1;
      for i:=2 to (num-1) do
        if num mod i=0 then sum:=sum+i;

      if (num=sum) and (num< >1) then writeln (num);
      end;
end.

3. Из 10 случайных чисел в интервале [1, 10] найти количество совершенных.

Пояснение: фактически надо найти количество шестерок.
Ответ может быть таким: 6 6 6 kch=3


program sov_03;
uses crt;
var n, ch, kch, del, i, sum: integer;
begin clrscr;
randomize;

    for n:=1 to 10 do
    begin
      ch:=random (10-1+1)+1;
      sum:=0;
      for i:=1 to ch-1 do
        if ch mod i=0 then sum :=sum+i;

      If ch=sum then
        begin write(ch:5); inc(kch) end;

    end;

writeln ('kch=':6, kch);
end.

4. Дано натуральное число N. Определить, является ли оно совершенным.

program sov_04;
Var n,i,sum:word;
Begin
Write('Введите натуральное число'); Readln(n);
    Sum:=0;{немного другой алгоритм поиска совершенных чисел}
    for i:=1 to n div 2 do
      if n mod I=0 then sum:=sum+i;

    If sum=n then writeln('число ',n,' совершенное')
    Else writeln(('число ',n,' не совершенное' );
End.

5. Вычислить ch/8+4, где ch - четвертое совершенное число.

Ответ:
k=4
ch=8128
ch/8+4=1020

program sov_05;
uses crt;
var ch, koldel, del, Sd, k: integer;

    {ch - число;
    koldel - количество делителей;
    del - делители;
    Sd - сумма делителей;
    k - количество чисел;}


begin clrscr;
ch:=1;
k:=0;
while k<4 do {ищем четвертое совершенное число}

    begin inc(ch);
    Sd:=0 ;
    for del:=1 to ch-1 do
      if ch mod del=0 then Sd:=Sd + del;

    If ch=Sd then inc(k);
    end;

writeln('k=',k); writeln('ch=',ch);
writeln('ch/8+4=',ch/8+4:2:0);
end.

 

 

 

 

Copyright ©2011 Nika A.S.
Hosted by uCoz