本文主要是介绍The number of divisors(约数) about Humble Numbers,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
The number of divisors(约数) about 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.
4 12 0
3 6
根据这个式子可以知道n是可以被拆分为一系列素数的乘积,那么将这些素数任意组合(当然每个素数的使用次数是有限制的)的得到的数字必然也是n的因子,比如18=2*3*3,9=3*3,6=2*3,那么6和9都是18的因子,总结一下对于每个是n的因子的素数p(它的指数是e,有e+1种选择,即不选p,选一个p,选两个p,……选n个p)剩下的就是一个组合的问题,对于n的约数的个数就是各个是因子的素数的选择的数目的乘积
#include<stdio.h>
int main()
{long long n;while(scanf("%lld",&n),n){int an[]={2,3,5,7};long long ans[4]={0};for(int i=0;i<4;i++){while(n%an[i]==0){ans[i]++;n/=an[i];}}printf("%lld\n",(ans[0]+1)*(ans[1]+1)*(ans[2]+1)*(ans[3]+1));}return 0;
}
这篇关于The number of divisors(约数) about Humble Numbers的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!