数论专题 hdu1492

 

  本题题意:给出一个数n(只可能分解为2,3,5,7的素因子),求出其因子数。

  代码如下:

  

#include <cstdio>
using namespace std;
typedef long long ll;
int main()
{
        ll n;
        while(scanf("%lld",&n)&&n)
        {
                ll a[]={1,1,1,1};
                while(n%2==0&&n!=1){a[0]++;n/=2;}
                while(n%3==0&&n!=1){a[1]++;n/=3;}
                while(n%5==0&&n!=1){a[2]++;n/=5;}
                while(n%7==0&&n!=1){a[3]++;n/=7;}
                printf("%lld\n",a[0]*a[1]*a[2]*a[3]);
        }
        return 0;
}

根据一个数的因子数是其每个素数因子的数量加上1然后相乘,由于该数只有4个素因子,直接统计每个素因子出现的个数就出来了(没有出现过的要记1)。

 

posted @ 2017-09-13 15:03  mtl6906  阅读(114)  评论(0编辑  收藏  举报