Это олимпиада. Существует предел 1000 миллисекунд . Независимо от того, что я делаю, работая с большими числами, код работает примерно за 1090 миллисекунд . Мне нужно время выполнения, чтобы быть 1 секундой или меньше. Два числа (t и d), разделенные пространством, введены в входную линию. Например, 20 и 10. И тогда вам нужно найти все числа с менее чем 4 делителями (включая 1 и само по себе) в диапазоне от (20-10) до (20+10). При вводе «20 10» правильный код всегда выводит «7» в консоли. Пожалуйста, помогите оптимизировать время выполнения этого кода < /p>
#pragma GCC optimize("Ofast,O3,unroll-loops")
#pragma GCC target("avx,avx2,fma,bmi,bmi2,lzcnt,popcnt")
#include
#include
int main() {
std::ios::sync_with_stdio(false);
unsigned long long t, d;
std::cin >> t >> d;
unsigned long long cMINmut = (t > d) ? (t - d) : 1;
unsigned long long cMAX = t + d;
unsigned long long divisors = 0;
unsigned long long n = 0;
for (unsigned long long num = cMINmut; num
Подробнее здесь: https://stackoverflow.com/questions/797 ... ork-faster