Есть ли какой-нибудь быстрый способ в C (менее 1 секунды), чтобы найти количество идеальные квадраты между двумя числами. Например, для 1 <-> 10 у нас есть 2 полных квадрата 4 и 9. А как насчет 1 <-> 2 ^ 60 или другого большего числа.
Это медленно
while(i*i<=n)
{
sum+=i==((long long)(sqrt(i*i)));
i++;
}
где n, скажем, 2 ^ 60, и мы начинаем с i = 2.