HDU1492-The number of divisors(约数) about Humble Numbers-数论(计数问题)

来源:互联网 发布:淘宝拍摄工作室 编辑:程序博客网 时间:2024/05/22 17:22

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1492

题意:给出一个只包含质因数2,3,5,7的数,求其约数的个数
思路:如果n=p1^n1*p2^n2*...*pn^nn,其中p1,p2,...,pn表示质因数,n1,n2,...,nn表示相应质因数的指数,根据乘法原理,则约数的个数为(n1+1)(n2+1)...(nn+1)
#include<iostream>#include<string>#include<cstdio>#include<cstring>#include<map>#include<queue>#include<cmath>#include<stack>#include<set>#include<vector>#include<algorithm>#define LL long long#define inf 1<<29#define s(a) scanf("%I64d",&a)#define CL(a,b) memset(a,b,sizeof(a))using namespace std;const int N=200005;__int64 n,m,a,b,c,d;int main(){    while(s(n)&&n){        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;}        printf("%I64d\n",a*b*c*d);    }    return 0;}


 

0 0
原创粉丝点击