2007年10月24日 星期三

Problem 294 Divisors, 整除數量計算

這題不是很難的問題,只是因為數值大的關係,如果從頭到尾都算的話時間會不夠,所以要記得把要算的數值開根號,就可以省去一半的時間。

for(j=L;j<=U;j++)
{
max_tmp = 0;
for(m=1;m<=sqrt(j);m++)
{
if(j%m == 0)
{
//printf("%d => %d\n", j,m);
if(m*m == j)
max_tmp++;
else
max_tmp+=2;
}
}
if(max_tmp > max)
{
max = max_tmp;
max_n = j;
}
}

Solved by Wellwind
p294目連結
回ACM題庫目錄
回首頁

沒有留言: