М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
danik131
danik131
18.09.2020 19:54 •  Информатика

Найти среди трёхзначных чисел простые (натуральные числа которые делятся только на 1 и само число: 2 3 5 7 11...) и у которых сумма цифр и все цифры тоже простые цифры. Например пер для двухзначного числа 29: число простое, сумма 11 – простое, цифры 2, 9 – простые. Замечание – 1 не простое число.

👇
Открыть все ответы
Ответ:
aminyl
aminyl
18.09.2020

Есть две переменные а и б
Изначально а=0, б=2364

 

Пока б будет больше 0 он будет выполнять следующие действия:

если остаток от б/10 меньше нуля тогда к А прибавляется этот остаток.
 Б делим на 10 и повторяем

 

Вывод А

 

Сама задача вычисляет сумму цифр в числе которые меньше 5.
Дано Б = 2364.

Задача смотрит остаток от 2364 mod 10 = 4

4 меньше пяти соответственно в А=4

далее 2364/10=236

 

теперь 236 mod 10 = 6

6 больше пяти поэтому ниче не делаем

236 div 10 = 23

 

теперь 23 mod 10 = 3

3 меньше пяти соответственно А=А+3 = 4+3 = 7

23 див 10 = 2

 

теперь 2 mod 10 = 2

2 меньше 5 соответственно А=А+3 = 7+2 = 9

2 див 10 = 0

 

Так как Б=0 программа выходит из цикла и выводит А, т.е. число 9

 

4,8(55 оценок)
Ответ:
vladkanter
vladkanter
18.09.2020
1. Современное решение

// PascalABC.NET 3.2, сборка 1437 от 03.05.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
  var min:=a.Min;
  a.Transform(x->x<0?x*min:x); a.Println
end.

Пример
n= 15
-34 7 0 -48 4 42 35 14 -47 6 -29 43 46 40 -18
1632 7 0 2304 4 42 35 14 2256 6 1392 43 46 40 864

2. Популярное до сих пор в школах решение на TurboPascal 7.01 (1983г.)

uses Crt;
const
  nn=100;
var
  i,n,min:integer;
  a:array[1..nn] of integer;
begin
  ClrScr;
  Randomize;
  Write('n='); Read(n);
  min:=100;
  for i:=1 to n do begin
    a[i]:=Random(101)-50;
    Write(a[i],' ');
    if a[i]<min then min:=a[i]
    end;
  Writeln;
  for i:=1 to n do
    if a[i]<0 then a[i]:=a[i]*min;
  for i:=1 to n do
    Write(a[i],' ');
  Writeln;
  ReadKey
end.
4,7(87 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ