ВХОД

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

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

Начало > Глава IV. Близнецы, Дружественные > Задачи с решениями

ГЛАВА IV

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

Числа близнецы



1. Найти все простые числа - близнецы (пример: 3 и 5, 5 и 7 и т.д.) в интервале от 3 до 100.
  Переход
Блок-схема

2. С клавиатуры вводятся пять пар чисел. Найти количество пар близнецов.
  Переход
Блок-схема

3. Вывести на экран 5 случайных пар двузначных чисел близнецов.
  Переход
Блок-схема

4. Проверить, являются ли первая и последняя цифры случайного числа парой чисел - близнецов. Интервал для числа задается с клавиатуры.
  Переход
Блок-схема

5. Найти сумму всех двузначных чисел близнецов.
  Переход
Блок-схема

1. Найти все простые числа - близнецы (пример: 3 и 5, 5 и 7 и т.д.) в интервале от 3 до 100.

Ответ:
числа 3 и 5 близнецы
числа 5 и 7 близнецы
числа 11 и 13 близнецы
числа 17 и 19 близнецы
числа 29 и 31 близнецы
числа 41 и 43 близнецы
числа 59 и 61 близнецы
числа 71 и 73 близнецы.


program bliz_01;
uses crt;
var
i, ii, d1, d2 : integer;
k, k1: integer;
    {i - первое число;
    ii - второе число;
    d1, d2 - делители для первого и второго числа
    k, k1 - количество делителей для первого и второго числа}
begin
clrscr;
    for i:=3 to 100 do {i - младшее число пары}
      begin
      k:=0; {поиск количества делителей младшего числа}
      for d1:=1 to i do
        if (i mod d1)=0 then inc(k);

      ii:=i+2; {ii - старшее число пары}
      k1:=0; {поиск количества делителей старшего числа}
      for d2:=1 to ii do
        if (ii mod d2)=0 then inc(k1);

      if (k=2) and (k1=2) then {если в обоих случаях количество делителей равно 2, то пара чисел - близнецы}
        writeln ('числа ',i, ' и ',ii, ' близнецы');
      end;
end.

2. С клавиатуры вводятся пять пар чисел. Найти количество пар близнецов.

program bliz_02;
uses crt;
var
i,j,a,b,k, kol1, kol2:integer;
begin
clrscr;
kol:=0; i:=0;
for i:=1 to 5 do

    begin
      write('a='); read(a); {ввод проверяемой пары}
      write('b='); read(b);

      kol1:=0; kol2:=0;
      for j:=1 to a do if a mod j=0 then inc(kol1);
      for j:=1 to b do if b mod j=0 then inc(kol2);

      if (kol1=2) and (kol2=2) and (abs(a-b)=2) then inc(k); {если количество делителей каждого числа равно 2, и сами числа отличаются на 2, то они - близнецы}
    end;

writeln(k);
end.


3. Вывести на экран 5 случайных пар двузначных чисел близнецов.

Ответ:
17 19
59 61
59 61
11 13
41 43



program bliz_03;
uses crt;
var a,kd,kd2,i,f:integer;
begin
    clrscr;
    randomize;
    i:=0;
    while i<5 do
      begin
      a:=random (100-10+1)+10;
      if a<=98 then
        begin
        kd:=2;
        kd2:=2;
        for f:=2 to (a+1) do
          begin
          if (a mod f=0) and (a< >f) then inc(kd);
          if ((a+2) mod f=0) then inc(kd2);
          end;
        if (kd=2) and (kd2=2) then
          begin writeln (a,' ',a+2); inc (i); end;
        end;
      end;
end.

4. Проверить, являются ли первая и последняя цифры случайного числа парой чисел - близнецов. Интервал для числа задается с клавиатуры.

Ответ:
m=304
n=306
Первая и последняя цифры 304 - не близнецы.

или
m=304
n=306
Первая и последняя цифры 305 - близнецы


program bliz_04;
uses crt;
var m,n,ch, ch1, x,xx,kd1, kd2, del: integer;
    {m,n - интервал;
    ch - число из этого интервала;
    ch1 - дубликат числа;
    x, xx - первая и последняя цифры числа ch;
    kd1, kd2 - количество делителей первой и последней цифр, как чисел;
    del - параметр делителей}

begin;
clrscr; randomize;
write('m='); readln (m);
write('n='); readln (n);

ch:=random(n-m)+m; {определили проверяемое число}
    xx:=ch mod 10; {нашли последнюю цифру числа ch}
    kd1:=0;
    for del:=1 to xx do
      if xx mod del=0 then inc(kd1); {kd1 - количество делителей последней цифры}

    ch1:=ch; {создали дубликат исходного числа}
    while ch< >0 do {цикл для нахождения первой цифры числа ch}
      begin
      x:=ch mod 10;
      ch:=ch div 10
      end;

    kd2:=0;
    for del:=1 to x do
      if x mod del=0 then inc(kd2);{kd2 - количество делителей первой цифры }


    if (kd1=2) and (kd2=2) and (abs(x-xx)=2) then write('Первая и последняя цифры ',ch1,' - близнецы')
    else write('Первая и последняя цифры ',ch1,' - не близнецы');
end.

5. Найти сумму всех двузначных чисел близнецов.
Ответ:
числа 11 и 13 близнецы
числа 17 и 19 близнецы
числа 29 и 31 близнецы
числа 41 и 43 близнецы
числа 59 и 61 близнецы
числа 71 и 73 близнецы
sum=468

program bliz_05;
uses crt;
var
i, ii, d1, d2, sum: integer;
k, k1: integer;
    {i - первое число;
    ii - второе число;
    d1, d2 - делители для первого и второго числа;
    sum - сумма всех чисел близнецов;
    k, k1 - количество делителей для первого и второго числа}
begin
clrscr; sum:=0;
    for i:=10 to 99 do {i - младшее число пары}
      begin
      k:=0; {поиск количества делителей младшего числа}
      for d1:=1 to i do
        if (i mod d1)=0 then inc(k);

      ii:=i+2; {ii - старшее число пары}
      k1:=0; {поиск количества делителей старшего числа}
      for d2:=1 to ii do
        if (ii mod d2)=0 then inc(k1);

      if (k=2) and (k1=2) then {если в обоих случаях количество делителей равно 2, то пара чисел - близнецы}
        begin
        writeln ('числа ',i, ' и ',ii, ' близнецы');
        sum:= sum+i+ii
        end;
      end;
writeln('sum=',sum);
end.


 

 

 

 

Copyright ©2011 Nika A.S.
Hosted by uCoz