zoukankan      html  css  js  c++  java
  • 整数的唯一分解定理【模板】

    给一个正整数n,将n分解为质因数。

    说明:n的质因数要么是n本身(n是素数),要么一定小于等于sqrt(n)。因此可以用小于等于sqrt(n)的数对n进行试除,一直除到不能除为止。

    这时候剩下的数如果不是1,那就是n最大的质因数。

    举例说明:100=2^2 * 5^2 ;

    模板代码:

     1 //整数的唯一分解定理
     2 int a[10000];//表示第i个质因数的值
     3 int b[10000];//表示第i个质因数的指数
     4 int n; 
     5 int cnt; //不同质因数的个数
     6 
     7 void factor()
     8 {
     9     int temp, i, now;
    10     temp=(int)((double)sqrt(n)+1.0);
    11     cnt=0;
    12     now=n;
    13     for(i=2; i<=temp; i++)
    14     if(now%i==0){
    15         a[++cnt]=i;//从a[1]开始存储的
    16         b[cnt]=0;
    17         while(now%i==0){
    18             ++b[cnt];
    19             now=now/i;
    20         }
    21     }
    22     if(now!=1){
    23         a[++cnt]=now;
    24         b[cnt]=1;
    25     }
    26 }
    View Code
  • 相关阅读:
    SQL执行效率1
    php经典算法(转载)
    linux自用命令
    vim基本命令
    xampp安装
    BUU-rsa
    z3约束器学习笔记
    面试前夕oi挣扎式复习
    bss上的格式化字符串漏洞
    一、汇编
  • 原文地址:https://www.cnblogs.com/yspworld/p/4702988.html
Copyright © 2011-2022 走看看