HDU 1492 The number of divisors(约数) about Humble Numbers(数论,简单约数)

The number of divisors(约数) about Humble Numbers

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1623    Accepted Submission(s): 789

Problem Description A number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, … shows the first 20 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 have 3 divisors(1,2,4);12 have 6 divisors.

 

 

Input The input consists of multiple test cases. Each test case consists of one humble number n,and n is in the range of 64-bits signed integer. Input is terminated by a value of zero for n.  

 

Output For each test case, output its divisor number, one line per case.  

 

Sample Input 4 12 0  

 

Sample Output 3 6  

 

Author lcy  

 

Source
“2006校园文化活动月”之“校庆杯”大学生程序设计竞赛暨杭州电子科技大学第四届大学生程序设计竞赛  

 

Recommend LL       很简单的题目。。 只要求得有多少个2,3,5,7 然后结果就是  (p2-1)*(p3-1)*(p5-1)*(p7-1)  

#include<stdio.h>
int main()
{
    long long n;
    int p2,p3,p5,p7;
    while(scanf("%I64d",&n),n)
    {
        p2=p3=p5=p7=0;
        while(n%2==0)
        {
            n/=2;
            p2++;
        }    
        while(n%3==0)
        {
            n/=3;
            p3++;
        }    
        while(n%5==0)
        {
            n/=5;
            p5++;
        }    
        while(n%7==0)
        {
            n/=7;
            p7++;
        }    
        printf("%d\n",(p2+1)*(p3+1)*(p5+1)*(p7+1));
    }    
    return 0;
}    

 

    原文作者:算法小白
    原文地址: https://www.cnblogs.com/kuangbin/archive/2012/08/04/2622945.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞