Có cách nào nhanh chóng trong C (dưới 1 giây) để tìm số ô vuông hoàn hảo giữa hai số. Ví dụ: cho 1 < -> 10 chúng tôi có 2 ô vuông hoàn hảo 4 và 9. Nhưng khoảng giữa 1 < -> 2^60 hoặc một số số lớn hơn khác.Hình vuông hoàn hảo giữa hai số
Đây là chậm
while(i*i<=n)
{
sum+=i==((long long)(sqrt(i*i)));
i++;
}
trong đó n là cho phép nói 2^60 và chúng tôi bắt đầu với i = 2.
* dưới 1 giây * 1 giây trên cái gì, 486 hoặc GeForce 560? –
Tại sao, 2^30 - 1? Bạn có thể tính toán 'sqrt' của các điểm cuối và tìm số lượng số nguyên trong phạm vi đó không? –