Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1741 Accepted Submission(s): 852
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.
排列组合求约数个数
#include <iostream> #include <map> #include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <algorithm> using namespace std; int main() { __int64 n; __int64 rc[4]; int p[4]={2,3,5,7}; while(scanf("%I64d",&n),n) { for(int i=0;i<4;i++) { rc[i]=1; if(n%p[i]==0) while(n%p[i]==0) {n/=p[i];rc[i]++;} } printf("%I64d\n",rc[0]*rc[1]*rc[2]*rc[3]); } return 0; }