标签:数论
定理:一个正整数 n 可以用素因子唯一表示为 p1^r1 * p2^r2 * ... pk^rk (其中 pi 为素数) , 那么这个数的因子的个数就是,(r1+1)*(r2+1)*...*(rk+1).
理解:为什么是加1之后再相乘,因为一个数的的因子数至少为1和他自身,但因为r1,r2。。可以为0,所以因子的个数为(r1+1)。。。
拓展一下:
定理1: 一个正整数 n 可以用素因子唯一表示为 p1^r1 * p2^r2 * ... pk^rk (其中 pi 为素数) , 那么这个数的因子的个数就是,(r1+1)*(r2+1)~(rk+1).
定理2:如果一个数字 n = p1^r1 * p2^r2 * ... pk^rk ,那么 n*n = p1^r1 * p2^r2 * ... pk^rk * p1^r1 * p2^r2 * ... pk^rk ,它的因子的个数就是 (2*r1+1)*(2*r2+1)~(2*rk+1)
Humble Numbers只要2,3,5,7,因此只要统计这四个因子的数目就可以了!
4 12 0
3 6
#include<stdio.h> int main() { __int64 n, c2, c3, c5, c7; while(scanf("%I64d", &n), n){ c2 = c3 = c5 =c7 = 1; while(n%7 == 0){ c7++; n/=7; } while(n%5==0){ c5++; n/=5; } while(n%3==0){ c3 ++; n /= 3; } while(n%2 == 0){ c2 ++; n /= 2; } __int64 ans =c2*c3*c5*c7; printf("%I64d\n", ans); } }
hdoj 1492 The number of divisors(约数) about Humble Numbers 【数论】【质因子分解 求和】,布布扣,bubuko.com
hdoj 1492 The number of divisors(约数) about Humble Numbers 【数论】【质因子分解 求和】
标签:数论
原文地址:http://blog.csdn.net/shengweisong/article/details/38132037