zoukankan      html  css  js  c++  java
  • 唯一分解定理

    唯一分解定理,也叫算术基本定理,指的是任何n>=2,都可以分解为n=p1*p2*p3*.....pn,其中pi为质数。

    其包括两个断言:断言1:数n可以以某种方式分解成素数乘积。

                                 断言2:仅有一种这样的因数分解。(除因数重排外)。

    其可以化简为 n=p1^x1*p2^x2*p3^x3.....pn^xn。其中pi均为质数。

     

    Description

    mmoaay小侄子今年上初中,老师出了一道求约数个数的题目,比如8的约数有1,2,4,8共4个。

    当数比较小的时候可以人工算,当n较大时就难了。

    mmoaay嫌麻烦,现在让你编个程序来算。

    Input

    一行一个整数。最后以0结束。

    Output

    分别求出这些整数的约数个数,最后的0不用处理。

    Sample Input

    8
    100
    0

    Sample Output

    4
    9

    解题思路:这里就使用唯一分解定理将所给的整数分解 n=p1^x1*p2^x2*p3^x3.....pn^xn,约数的个数就是(x1+1)*(x2+1)(x3+1).......(xn+1)。

     1 #include <iostream>
     2 #include <cstdio>
     3 using namespace std;
     4 int main()
     5 {
     6     int n,i,counts;
     7     int ans;
     8     while(scanf("%d",&n)!=EOF)
     9     {
    10         ans=1;
    11         if(n==0)
    12         {
    13             break;
    14         }
    15         for(i=2; n!=1; i++)
    16         {
    17             counts=1;
    18             while(n%i==0)
    19             {
    20                 counts++;
    21                 n=n/i;
    22             }
    23             ans=ans*counts;
    24         }
    25         printf("%d
    ",ans);
    26     }
    27     return 0;
    28 }
  • 相关阅读:
    学期总结
    C语言I博客作业09
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    作业02
    c语言 学习笔记之二 选择题2
  • 原文地址:https://www.cnblogs.com/wkfvawl/p/9911083.html
Copyright © 2011-2022 走看看