1. 程式人生 > >Hdu-1098解題報告

Hdu-1098解題報告

什麽 php break AC style %d fff font 正整數

Hdu-1098解題報告

題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=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*a;要使f(x)%65=0,所以只要在1-65的範圍內有一個a滿足(18+k*a)%65=0這個條件,即可證明a存在。同時註意a的範圍是在0-65間,因為如果a>65後,(18+a*k)%65以65為周期,如果a=66,(18+66*k)%65的效果與(18+1*k)%65的效果一樣;

#include<stdio.h>

int main()

{

int k,i;

while(~scanf("%d",&k))

{

for(a=0;a<=65;a++)///////////////////////////此處應搞懂是為什麽

{

if((18+a*k)%65==0)

{

printf("%d\n",a);

break;

}

}

if(a>=66)

printf("no\n");

}

return 0;

}

                                                                          2018-04-13

Hdu-1098解題報告