Уникальным назовём число, если у него только третья и пятая цифры чётные. Для интервала [55555; 77777] найдите количество таких чисел, которые не делятся на 6, 7, 8 и разность максимального и минимального из них. В ответе укажите два числа: сначала количество чисел, а потом разность. Программа любая, можно просто ответ.
Делаем буквально то, что написано в условии: получаем список простых делителей для каждого числа, если их оказалось три и все они различные, то проверяем, не оканчиваются ли все они на одну цифру. Если и это совпало, добавляем это число в список. В конце выводим ответ: количество чисел в списке и разность между максимальным и минимальным значением.
Производительность тут не так важна, так что можно ничего не оптимизировать, и так ответ получается за разумное время.
Код (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))
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;
}