The number of divisors (approximate) about Humble NumbersTime
limit:1000MS
Memory Limit:32768KB
64bit IO Format:%i64d &%i64 U
Description
A number whose only prime factors be 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, ten,, +, (+), A, ten, A, ten, ten, ... shows the first humble numbers.
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 has 3 divisors (1,2,4) and 6 divisors.
Input
The input consists of multiple test cases. Each test case consists of one humble number N,and n was in the range of 64-bits signed integer. Input is terminated by a value of zero for N.
Output
For each test case, the output its divisor number, one line per case.
Sample Input
4120
Sample Output
36
#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include < queue> #include <vector> #include <iomanip> #include <math.h>using namespace std; #define FIN Freopen ("Input.txt", "R", stdin), #define INF 0x3f3f3f3f#define lson l,m,rt<<1#define rson m+1,r, Rt<<1|1typedef Long Long Ll;int main () { //fin LL N; while (~SCANF ("%lld", &n) &&n) { LL res=1; int a=1,b=1,c=1,d=1; while (n!=1&&n%2==0) {a++;n/=2;} while (n!=1&&n%3==0) {b++;n/=3;} while (n!=1&&n%5==0) {c++;n/=5;} while (n!=1&&n%7==0) {d++;n/=7;} Res=a*b*c*d; printf ("%lld\n", res);} }
HDU 1492 the number of divisors (approximate) about Humble Numbers number theory