Есть ли какой-нибудь быстрый способ в C (менее 1 секунды), чтобы найти число идеальных квадратов между двумя числами. Для примера. для 1 < -> 10 у нас есть 2 идеальных квадрата 4 и 9. Но как насчет между 1 < -> 2^60 или некоторым другим большим числом.Идеальные квадраты между двумя номерами
Это медленно
while(i*i<=n)
{
sum+=i==((long long)(sqrt(i*i)));
i++;
}
где п позволяет сказать, что 2^60, и мы начинаем с г = 2.
* менее 1 сек * 1 секунду на том, что, 486 или GeForce 560? –
Почему, 2^30 - 1? Вы можете вычислить «sqrt» конечных точек и узнать, сколько целых чисел находится в этом диапазоне? –