時間限制:
1000 ms | 記憶體限制:
65535 kb
難度:3 描述
月老最近遇到了乙個很棘手的問題,就是「剩男」「剩女」急速增長,而自己這邊又人手不足導致天天都得加班。現在需要你來幫助月老解決這個問題,牽紅繩的規則很簡單:每個男生都乙個編號n(1<=n<=500000),編號n的因數之和就是要牽線的女生的編號。
如20的因子是:1,2,4,5,10;
輸入
輸入資料的第一行是乙個數字t(1<=t<=500000),它表明測試資料的組數.然後是t組測試資料,每組測試資料只有乙個數字n(1<=n<=500000).
輸出對於每組測試資料,請輸出乙個代表輸入編號n男生的另一半的編號.
樣例輸入
321012
樣例輸出
1816
/*
怎麼求乙個數的所有因子只和呢?
找出他所有的因子然後相加?好吧,這麼說只能證明你很聰明^_^
那麼問題的關鍵就轉變為怎麼求出所有的因子
怎麼辦呢?
問題其實很簡單,
如果a*b=c那麼c的因子就一定有a和b,
如果e*f 也等於c,那麼c的因子就一定有e和f
如果h*l 也等於c 、、、、、
、、、 、、、 、、、
那麼,如果想找出c的所有因子只和只需要把a、b、e、f、h、l 等加起來就行了
題目中要求詢問了多次(很多次),我想聰明的你一定想到了用陣列存
恭喜你,你答對了,把他們全部列舉一遍,存起來,問什麼我輸出對應的值就行了
不過,還是有有幾點注意事項的,
比如程式中
① i*i 之後退出
② 當i*i是因子的時候只加乙個i
③ j從 i+1開始 其他情況都加上i+j
*/#include #include #include #include #include #include #include #include #include #define m 500005
using namespace std;
int a[m];
int main()
}while(t--)
return 0;
}
最後,差點忘了說了,a[n]-n是因為n本身不符合題意,雖然是他的因子。
nyoj 47 過河問題
時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 在漆黑的夜裡,n位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,n個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時過。如果各自單獨過橋的話,n人所需要的時間已知 而如果兩...
NYOJ 47 過河問題
時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 在漆黑的夜裡,n位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,n個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時過。如果各自單獨過橋的話,n人所需要的時間已知 而如果兩...
nyoj 47 過河問題
時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 在漆黑的夜裡,n位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,n個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時過。如果各自單獨過橋的話,n人所需要的時間已知 而如果兩...