平方根問題

2021-10-03 06:14:54 字數 556 閱讀 5427

考慮定義在兩正整數上的函式ssr(平方根之和的平方):ssr(a, b) = (sqrt(a) + sqrt(b))^2。牛牛對函式值為整數的情況很感興趣。現在給定整數n和m,請幫助牛牛計算有序對(a, b)的數量, 滿足1 ≤ a ≤ n, 1 ≤ b ≤ m而且ssr(a, b)是乙個整數。

這道題本質上是要求sqrt(ab)是整數,也就是要求ab的乘積是完全平方數,使用列舉的思路超時。

看到一段ac的**如下:

#include

#include

#include

using

namespace std;

vector<

bool

>

pend

(100005

,false);

void

getpend

(int m)

}int

main()

printf

("%lld"

, ans)

;}

還沒有完全明白他的原理,先記錄一下。

快速平方根演算法

在3d圖形程式設計中,經常要求平方根或平方根的倒數,例如 求向量的長度或將向量歸一化。c數學函式庫中的sqrt具有理想的精度,但對於3d遊戲程式來說速度太慢。我們希望能夠在保證足夠的精度的同時,進一步提高速度。carmack在quake3中使用了下面的演算法,它第一次在公眾場合出現的時候,幾乎震住了...

求平方根函式

加一點注釋 unsigned short work unsigned int n 要進行開平方運算的物件 unsigned int ans 0 開平方運算的結果 unsigned int square 0 記錄中間產生的平方值 unsigned short r 0 程式最終的返回結果 for int...

整數平方根2

sqrt的快速演算法 參考 2009年10月26日 星期一 21 04 在3d圖形程式設計中,經常要求平方根或平方根的倒數,例如 求向量的長度或將向量歸一化。c數學函式庫中的sqrt具有理想的精度,但對於3d遊戲程式來說速度太慢。我們希望能夠在保證足夠的精度的同時,進一步提高速度。carmack在q...