題目描述:輸入n個整數,依次輸出每個數的約數的個數
輸入:輸入的第一行為n,即陣列的個數(n<=1000)
接下來的1行包括n個整數,其中每個數的範圍為(1<=num<=1000000000)
當n=0時輸入結束。
輸出:可能有多組輸入資料,對於每組輸入資料,
輸出n行,其中每一行對應上面的乙個數的約數的個數。
樣例輸入:
51 3 4 6 12
樣例輸出:
12346
比較簡單的方法是將給定的資料n開方得m,遍歷m之前屬於n的約數的個數num,若m為整數,則約數的個數為2*num-1,否則為2*num。
此方法可參考
以下**是利用素數的性質,是最開始時想到的方法,比較麻煩。
下面第一部分是自己摸索不斷改正實現的,第二部分通過網上了解到約數個數定理學習實現的。
#include#define max 100001
bool mark[max];
int primesize = 0;
int prime[max];
void init() }}
int ansnum[max];
int buf[1000];
/*int main()
len++;
} if (buf[i] == 1)
break;
} if (buf[i] > 1)
ansnum[len++] = 1;
int ans = 1;
// printf("the len is %d\n", len);
for (int m = 0; m < len; m++)
ans += ansnum[m];
for (int m = 0; m < len; m++)
printf("%d\n", ans);
} }return 0;
}*///使用約數個數定理
int main()
len++;
}if (x == 1)
break;
}if (x > 1)
ansnum[len++] = 1;
int ans = 1;
for (int m = 0; m < len; m++)
ans = ans * (ansnum[m] + 1);
printf("%d\n", ans);
} }return 0;
}
題目1087 約數的個數
題目描述 輸入n個整數,依次輸出每個數的約數的個數 輸入 輸入的第一行為n,即陣列的個數 n 1000 接下來的1行包括n個整數,其中每個數的範圍為 1 num 1000000000 當n 0時輸入結束。輸出 可能有多組輸入資料,對於每組輸入資料,輸出n行,其中每一行對應上面的乙個數的約數的個數。樣...
九度oj 題目1087 約數的個數
鏈結 題目描述 輸入n個整數,依次輸出每個數的約數的個數 輸入 輸入的第一行為n,即陣列的個數 n 1000 接下來的1行包括n個整數,其中每個數的範圍為 1 num 1000000000 當n 0時輸入結束。輸出 可能有多組輸入資料,對於每組輸入資料,輸出n行,其中每一行對應上面的乙個數的約數的個...
九度OJ 題目1087 約數的個數
題目描述 輸入n個整數,依次輸出每個數的約數的個數 輸入 輸入的第一行為n,即陣列的個數 n 1000 接下來的1行包括n個整數,其中每個數的範圍為 1 num 1000000000 當n 0時輸入結束。輸出 可能有多組輸入資料,對於每組輸入資料,輸出n行,其中每一行對應上面的乙個數的約數的個數。樣...