2017西安交大ACM小学期数论 [完全平方数]
生活随笔
收集整理的這篇文章主要介紹了
2017西安交大ACM小学期数论 [完全平方数]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
完全平方數
發布時間: 2017年6月24日 17:01?? 最后更新: 2017年7月3日 09:27?? 時間限制: 1000ms?? 內存限制: 128M
描述給定正整數b,求最大的整數a,使a(a+b)是完全平方數。
多組測試數據(不超過10000組)。
每組數據一個正整數b,b≤109。
對每組數據輸出一行一個整數a,表示答案。
樣例輸入1 1 3 5 樣例輸出1 0 1 4 這道題目,代碼很短,重點在思維上面。我們這樣考慮,設a = kt^2,且k是素數
那么a(a+b) = kt^2(kt^2 + b)是完全平方數
相當于k(kt^2 + b)是完全平方數
由于完全平方數中包含素數k,則k的次數必為偶數次
那么k^2 | k(kt^2 + b)
也就是說k | b
設b = ke
那么等價轉化到k^2(t^2+e)是完全平方數
相當于t^2 + e是完全平方數
考慮e的取值
e = 2t + 1的時候,t^2 + e是完全平方數
e = 4t + 4的時候,t^2 + e是完全平方數
要使得a = kt^2越大,直覺上認為t一定要越大
所以說,如果n為奇數的情況下t = (e-1)/2 = (n-1)/2; k = 1;這樣最好
如果n為偶數的話,如果n/2為奇數的話,那么k = 2;t = (n/2-1)/2;這樣最好
而如果n為偶數,n/2仍然為偶數的話,那么k = 1;e = (n-4)/4 ?這樣最好
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的2017西安交大ACM小学期数论 [完全平方数]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 专线路由器ip地址怎么设置路由器移动专线
- 下一篇: 2017西安交大ACM小学期数论 [更新