暴力模擬———七夕節

七夕節那天,月老來到數字王國,他在城門上貼了一張告示,並且和數字王國的人們說:"你們想知道你們的另一半是誰嗎?那就按照告示上的方法去找吧!" 
人們紛紛來到告示前,都想知道誰纔是自己的另一半.告示如下: 



數字N的因子就是所有比N小又能被N整除的所有正整數,如12的因子有1,2,3,4,6. 
你想知道你的另一半嗎? 
Input輸入數據的第一行是一個數字T(1<=T<=500000),它表明測試數據的組數.然後是T組測試數據,每組測試數據只有一個數字N(1<=N<=500000). 
Output對於每組測試數據,請輸出一個代表輸入數據N的另一半的編號. 
Sample Input
3
2
10
20
Sample Output
1
8
22


si  思路:用兩個for循環,將每個數字的因子一個一個的加起來,最後就得到答案,詳見代碼。
代碼:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int N=500000+10;
int a[N];
int main()
{
    int n,num;
    scanf("%d",&n);
    a[0]=a[1]=1;
    for(int i=1; i<=N/2; i++)
        for(int j=i*2; j<=N; j+=i)
            a[j]+=i;
    while(n--)
    {
        scanf("%d",&num);
        printf("%d\n",a[num]);
    }
    return 0;
}





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章