N的因子个数 HDU1492

题目链接:HDU - 1492


题意:给定一个数求其因子数(该因子必须要以2、3、5、7作为基础因子)。


思路:

数论基础题,参考博客:http://blog.sina.com.cn/u/2173517203  在此表示感谢!

求取幂次,然后每项加1互乘,以12为例,其可以分解为2*2*3,其中2^2与3^1,在12的各项因子中可以由2的0、1、2次方再乘上3的0、1次方得到,所以有2*3=6种情况。


代码:

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define E 2.71828
#define PI acos(-1.0)
using namespace std;
typedef long long ll;
const ll maxn=1000005;
ll n;
int a[]={2,3,5,7};
int b[]={1,1,1,1};
int main () {
    ios::sync_with_stdio(false);
    while(cin>>n&&n) {
        for(int i=0;i<4;i++) {
            while(n%a[i]==0) {
                b[i]++;
                n/=a[i];
            }
        }
        cout<



你可能感兴趣的:(数论)