ВХОД

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

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

Начало > Автоморфные , Пифагоровы > Общие задачи с использованием этоих алгоритмов

ГЛАВА V

ОБЩИЕ ЗАДАЧИ

Автоморфные и пифагоровы числа



1. Найти количества автоморфных и пифагоровых чисел в интервале от 100 до 1200.
  Переход
Блок-схема

2. Найти первое двузначное автоморфное число, сумма цифр которого пифагорово число.
  Переход
Блок-схема

1. Найти количества автоморфных и пифагоровых чисел в интервале от 100 до 1200.

Ответ:

376 - автоморфное
625 - автоморфное

Количество пифагоровых троек =869
Количество автоморфных=2

program block05_01;
uses crt;
var a, b, c, kpif: integer;

    {a, b, c - пифагоровы числа;
    kpif - количество пифагоровых чисел }
x, p, kavt: integer;
    {x - автоморфное число;
    p - порядок числа;
    kavt - количество автоморфных чисел}

begin clrscr;
{поиск количества пифагоровых троек}
for a:=100 to 1200 do
for b:=a to 1200 do
for c:=b to 1200 doIf c*c=a*a+b*b then
    begin
    inc(kpif) ;
    end;

{поиск количества автоморфных чисел}
p:=1;
for x:=100 to 1200 do
    begin
    while p<=x do p:=p*10;
    if x*x mod p = x then
      begin
      writeln(x, ' - автоморфное');
      inc(kavt)
      end;
    end;

writeln; writeln('kpif=',kpif);
writeln('kavt=', kavt);
end.


2. Найти первое двузначное автоморфное число, сумма цифр которого пифагорово число.
Ответ:
25 - автоморфное
Сумма цифр=7

76 - автоморфное
Сумма цифр=13
76 - первое число, сумма цифр которого - пифагорово число

program block05_02;
uses crt;
var ch, ch1, s, p :integer;

    {ch - проверяемое на автоморфность число;
    ch1 - дубликат числа;
s - сумма цифр;
p - порядок числа}
a,b,c: integer;
    {a, b, c - числа пифагоровой тройки}
f:boolean;
    {флаг условия задачи}

begin
clrscr;
f:=false;

ch:=9; {последнее однозначное число перед двузначными}
repeat
    inc(ch);
    ch1:=ch;{Создали дубликат числа для поиска суммы его цифр}
    s:=0;
    while ch1< >0 do
      begin
      s:=s+ch1 mod 10;
      ch1:=ch1 div 10
      end;


    {Определяем автоморфность числа:}
    p:=1;
    while p<=ch do p:=p*10;
    if ch*ch mod p = ch then
      begin
      writeln(ch:5, ' - автоморфное'); writeln('сумма цифр=', s);
      {Находим пифагоровы тройки и сравниваем пифагоровы числа с S:}
      for a:=1 to s do
        for b:=a to s do
          for c:=b to s do
            {если найдена тройка пифагоровых чисел и число S равно одному из чисел, то выводим на экран искомое число}
            If (c*c=a*a+b*b) and ((s=a) or (s=b) or (s=c)) then
              begin
              writeln(ch, ' - первое число, сумма цифр которого - пифагорово число');
              f:=true {флаг для окончания цикла}
              end;
      end;
until f =true;
end.

 

 

 

 

 

Copyright ©2011 Nika A.S.
Hosted by uCoz