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

Найти алгоритм работы черного ящика: вход: 12 34 20 9 28 100 200 27 41 60 выход: 0 1 2 0 1 1 2 0 2 0

👇
Ответ:
Mia112
Mia112
23.04.2021

черный ящик дает остаток от деления входных данных на 3

4,8(89 оценок)
Открыть все ответы
Ответ:
nastyateam1
nastyateam1
23.04.2021

Делаем буквально то, что написано в условии: получаем список простых делителей для каждого числа, если их оказалось три и все они различные, то проверяем, не оканчиваются ли все они на одну цифру. Если и это совпало, добавляем это число в список. В конце выводим ответ: количество чисел в списке и разность между максимальным и минимальным значением.

Производительность тут не так важна, так что можно ничего не оптимизировать, и так ответ получается за разумное время.

Код (python 3):

answer = []

for number in range(416782, 498324 + 1):

   prime_divisors, possible_divisor, current = [], 2, number

   while possible_divisor ** 2 <= current:

       if current % possible_divisor == 0:

           prime_divisors.append(possible_divisor)

           current //= possible_divisor

       else:

           possible_divisor += 1

   if current != 1:

       prime_divisors.append(current)

   if len(prime_divisors) == 3 and len(set(prime_divisors)) == 3:

       last_digit = prime_divisors[0] % 10

       if all(p % 10 == last_digit for p in prime_divisors):

           answer.append(number)

print(len(answer))

print(max(answer) - min(answer))

4,4(75 оценок)
Ответ:
AngelRush0
AngelRush0
23.04.2021

1)Задание:

#include <iostream>

#include <iomanip>

#include <time.h>

#include <stdlib.h>

using namespace std;

int main(){

setlocale(LC_ALL, "Russian");

int Indexmax=0;

srand(time (NULL));

int max = 0;

const int N=19;

int array[N];

int i;

for(i=0;i<N;i++)

{

array[i]=rand()%50;

cout<< setw(5) <<array[i];

}

cout << endl;

for(i=0;i<N;i++)

{

if(array[i]>max && array[i] % 5 == 0)

{

max=array[i];

}

}

cout << endl;

if(max)

cout<<"max=" << max << endl;

else

cout << "Чётных нету";

return 0;

}

2) Задание:

#include <iostream>

#include <iomanip>

#include <time.h>

#include <stdlib.h>

using namespace std;

int main(){

setlocale(LC_ALL, "Russian");

int last2 ;

int last;

srand(time (NULL));

const int N=19;

int array[N];

int i;

cout<< "До замены: " << endl;

for(i=0;i<N;i++)

{

array[i]=rand()%50 - 10;

cout<< setw(5) <<array[i];

}

cout << endl;

for(i=0;i<N;i++)

{

if(array[i]>0)

{

last = array[i];

}

}

cout<<"После замены: " << endl;

for(i=0;i<N;i++)

{

if(array[i]<0)

{

array[i]=last;

}

cout<< setw(5) <<array[i];

}

cout << endl;

cout << "Последнее число массива: "<< last;

return 0;

}

4,4(28 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ