The number of divisors(约数) about Humble Numbers
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4105 Accepted Submission(s): 2012
Now given a humble number, please write a program to calculate the number of divisors about this humble number.For examle, 4 is a humble,and it have 3 divisors(1,2,4);12 have 6 divisors.
问题链接:HDU1492 The number of divisors(约数) about Humble Numbers。
问题简述:参见上文。
问题分析:
计算谦虚数的约数数量问题。
根据题意,1是谦虚数;谦虚数是2,3,5和7的倍数;最小的谦虚数乘以2,3,5和7是谦虚数。
需要注意的是,谦虚数约数个数是2,3,5和7的指数的乘积。
程序说明:(略)
参考链接:(略)
题记:(略)
AC的C++语言程序如下:
/* HDU1492 The number of divisors(约数) about Humble Numbers */ #include <iostream> #include <stdio.h> using namespace std; const int N = 4; int divisors[N] = {2, 3, 5, 7}; int main() { long long n; while(scanf("%lld", &n) != EOF && n) { long long ans = 1; for(int i=0; i<N; i++) { int ecount = 0; while(n % divisors[i] == 0) { ecount++; n /= divisors[i]; } ans *= ecount + 1; } printf("%lld\n", ans); } return 0; }