1. 程式人生 > >牛客練習-禁忌雷炎

牛客練習-禁忌雷炎

赫柏在絕域之門擊敗魯卡斯後,從魯卡斯身上掉落了一本高階技能書,赫柏開啟後驚喜地發現這是一個早已失傳的上古技能---禁忌雷炎。
該技能每次發動只需扣很少的精神值,而且輸出也非常高。
具體魔法描述如下:
把地圖抽象為一個二維座標,技能發動者位於(0,0)位置。以技能發動者為中心,做一個半徑為r的圓,滿足r^2=S,如果敵人位於這個圓上,且位置為整點座標,這個敵人將收到該技能的輸出傷害。。
例如當S=25時,將有12個敵人受到該技能的輸出傷害,如下圖所示:

更厲害的是,禁忌雷炎可以通過改變魔法輸入來控制S的大小,因此數學好的魔法師可以通過該技能攻擊到更多的敵人。
赫柏想將這個技能學會併成為自己的主技能,可數學是他的硬傷,所以他請求你為他寫一個程式,幫幫他吧,沒準他就把禁忌雷炎與你分享了 : )

 

輸入描述:

多組測試資料,請處理到檔案結束。

對於每組測試資料,只包含一個整數S。

保證:

1<=S<=2,000,000,000。


 

輸出描述:

輸出一個整數,代表受到禁忌雷炎傷害的敵人數量。

示例1

輸入

25
3

輸出

12
0
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
    long long s;
    while(cin>>s)
    {
        int cnt = 0;
        int r = sqrt(s);
        for(int i = 1;i<=r;i++)
        {
            int m = (int)sqrt(s-i*i);
            if(m*m==s-i*i)cnt++;
        }
        cout<<cnt*4<<endl;
    }
    return 0;
}