YS
Size: a a a
YS
YS
I
AP
YS
Д
YS
I
YS
I
YS
YS
ДЦ
I
I
V
bool satisfies_B(long long n)
{
return (n % 13 != 0) and (n % 29 != 0) and (n % 43 != 0) and (n % 101 != 0);
}
void main()
{
auto left = 2e10;
auto right = 4e10;
auto step = 100000;
auto big_step = 7*step;
// начинаем с левого, ищем первое число, которое удовлетворяет условию
auto current = left;
auto min = 0;
auto count = 0;
while (current <= right)
{
if ((current % 7 == 0) and (satisfies_B(current))
{
min = current;
count = 1;
}
current += step;
}
// после этого цикла текущее – это первое и минимальное из всех одновременно
// минимальное = текущее;
// количество = 1;
// теперь можно считать числа с шагом в 700000
///начиная с (текущего) с шагом в 700 000 проверяем:
//условие В
//если выполняется, увеличиваем количество
do
{
current += big_step;
if (satisfies_B(current)
count++;
}
while (current < right);
}
I
YS
I
YS