題目大意:方程f(x)=5*x^13+13*x^5+k*a*x;輸入任意乙個數k,是否存在乙個數a,對任意x都能使得f(x)能被65整出。現假設存在這個數a ,因為對於任意x方程都成立
所以,當x=1時f(x)=18+ka
又因為f(x)能被65整出,故設n為整數
可得,f(x)=n*65;
即:18+ka=n*65;
因為n為整數,若要方程成立
則問題轉化為,
對於給定範圍的a只需要驗證,
是否存在乙個a使得(18+k*a)%65==0
所以容易解得
注意,這裡有童鞋不理解為毛a只需到65即可
因為,當a==66時
也就相當於已經找了乙個週期了,所以再找下去也找不到適當的a了
如果你非要證明的話,可以利用了取模過程與數的運算的次序上可交換原理簡單證明一下
problem description
no exists that a,then print "no".
input
the input contains several test cases. each test case consists of a nonegative integer k, more details in the sample input.
output
the output contains a string "no",if you can't find a,or you should output a line contains the a.more details in the sample output.
sample input 11
1009999
sample output
22no43
#include#include#include#include#includeusing namespace std;
int main()
if(a>65) printf("no\n");
else printf("%d\n",a);
} return 0;
}
Hdu 1098解題報告
hdu 1098解題報告 題意 已知存在乙個等式f x 5 x 13 13 x 5 k a x,輸入乙個正整數k k 1000 要我們找出乙個最小的正整數a 使得任意的整數x,滿足f x 65等於0。如果整數a 不存在,則輸出 no 存在的話就輸出a。思路 採用特值法 當x 1時,f x 18 k ...
hdu1098 數學歸納法簡單應用
題目的關鍵是函式式f x 5 x 13 13 x 5 k a x 事實上,由於x取任何值都需要能被65整除.那麼用數學歸納法.只需找到f 1 成立的a,並在假設f x 成立的基礎上,證明f x 1 也成立.那麼把f x 1 展開,得到5 13 0 x 13 13 1 x 12 13 13 x 0 1...
費馬小定理 hdu 1098
題意 給出k。求使得f x 5 x 13 13 x 5 k a x對任意x都為65的倍數的a的最小值。mark 65 13 5。要使f x 是65的倍數,只需要f x 是5和13的倍數即可。先來分析13的。若f x 是13的倍數,有5 x 13 13 x 5 k a x 13 0,其中13 x 5項...