zoukankan      html  css  js  c++  java
  • 杭电1492

    题意:求给定的humble number有多少个因数?(humble number:质因子只有2,3,5,7的整数)

    Analyse:
    用数组pd[4](prime divisor)记录质因数2,3,5,7的次数。n的因数都可表示为n=2^pd[0]*3^pd[1]*5^pd[5]*7^pd[3],只要有一个指数不与对应底数的指数相等,两个质因数就是不相等的。因此,题目的意思就是求2,3,5,7的指数的组合。(注意指数可以为0)因此因数个数为(pd[0]+1)*(pd[1]+1)*(pd[2]+1)*(pd[3]+1)。
    View Code
     1 #include<stdio.h>
    2 main()
    3 {
    4 __int64 n;
    5 __int64 count;
    6 __int64 pd[4];//2,3,5,7质因数个数
    7 while(scanf("%I64d",&n)&&n)
    8 {
    9 for(pd[0]=0;n%2==0;pd[0]++,n/=2);
    10 for(pd[1]=0;n%3==0;pd[1]++,n/=3);
    11 for(pd[2]=0;n%5==0;pd[2]++,n/=5);
    12 for(pd[3]=0;n%7==0;pd[3]++,n/=7);
    13 count=(pd[0]+1)*(pd[1]+1)*(pd[2]+1)*(pd[3]+1);
    14 printf("%I64d\n",count);
    15 }
    16 }
  • 相关阅读:
    [Luogu1993] 小K的农场
    [Noip2013] 车站分级
    [Noip2003]加分二叉树
    [Luogu3797] 妖梦斩木棒
    UPC 6616 Small Mulitple
    STL容器之优先队列
    Dijkstra和Floyd算法
    最短路径问题---Dijkstra算法详解
    并查集
    洛谷 P1217
  • 原文地址:https://www.cnblogs.com/ZShogg/p/2433019.html
Copyright © 2011-2022 走看看