`
polyahu
  • 浏览: 23177 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

分解质因数小脚本

阅读更多
awk语言的版本,如下:
{ x = $0; }

function foo(a)
{
  for (i = 2; i <= a; i++)
    if (a%i == 0) {printf("%d ",i);return i;}
}

END {
  c = foo(x);
  while (c < x)
  {
    x = x / c;
    c = foo(x);
  }
}

# usage(): $echo 2520 | awk -f script.awk


下边这个是一样思路的Bash版本,不过运行的非常慢。
#!/usr/bin/bash
#usage(): $sh script.sh 2520

function foo ()
{
    for i in `seq 2 $1`
    do
        b=`expr $1 % $i`
        if [[ $b -eq 0 ]] 
        then
            printf "%d" $i
            return $i
        fi
    done
}
c=$1
foo $c
a=`foo $c`
while [ $a -ne $c ]
do
    c=`expr $c / $a`
    printf " * "
    foo $c
    a=`foo $c`
done
echo


下边这个是python版本,函数有递归:
#!/usr/bin/python
import sys
num = int(sys.argv[1])
def output(num):
  for i in range(2,num):
    if num % i == 0 : 
      print i,
      output(num/i)
      return
  print num
  return 

output(num)
#usage(): python script.py 2520


下边这个是用了递归思路的Bash版本,比上上的那条不用递归的要快一倍左右:
#!/usr/bin/bash
proc()
{
  for i in `seq 2 $1`
  do
    if [ `expr $1 % $i` -eq 0 ]
    then echo -n $i," "; proc `expr $1 / $i` 
    break #此处不加break会有bug
    fi
  done
}
proc $1
#usage(): $sh script.sh 2520
分享到:
评论

相关推荐

    深入分析C语言分解质因数的实现方法

    首先来看一个最简单的C语言实现质因数分解的列子: #include void main( ) { int data, i = 2; scanf("%d", &data); while(data &gt; 1) { if(data % i == 0) { printf("%d ", i); data /= i; } else i++;...

    用分解质因数法与短除法求三个数的最小公倍数.ppt

    本节课件主要讲解了如何使用分解质因数法和短除法来求三个数的最小公倍数。下面是相关知识点的总结: 一、分解质因数法 分解质因数法是指将一个数分解成质因数的乘积。例如,14可以分解成2×7,6可以分解成2×3,...

    易语言分解质因数

    这个“易语言分解质因数源码”文件应该包含了上述逻辑的实现,通过阅读和学习这个源码,初学者可以更好地理解易语言的基本语法和流程控制,同时也能掌握质因数分解这一基础的数学算法。这个过程对提升编程思维和问题...

    超大正数分解质因数(原创_源代码).rar

    可以对超过64位最大整数(18446744073709551615,约1845亿亿,20位十进制数)的整数分解质因数。原创的全部源代码共享。 使用了.NET库的“大整数”类。界面为 Win Form 程序使用确定性算法。 做了尽可能多的优化...

    分解质因数实现求解最大公约数

    c语言编写分解质因数实现求解两个数的最大公约数

    分解质因数程序

    分解质因数C++的程序算法设计,较为高效的实现办法

    将一个正整数分解质因数。

    质因数分解是将一个大于1的正整数表示为若干个质数(只有1和自身两个正因数的自然数)的乘积,这种表示方式是唯一的。例如,28可以分解为2×2×7,因为2和7都是质数,而2×2×7是唯一不可再分解的形式。 Swing是...

    分解质因数

    在这个系统中,两个大质数的乘积被公开作为公钥,而其质因数则被保密,如果能有效地分解这个乘积,就可以破解加密的信息,但目前尚未找到快速的质因数分解方法,这构成了RSA的安全基础。 此外,分解质因数还有助于...

    python程序分解质因数

    质因数(素因数或质因子)在数论里是指能整除给定正整数的质数,这里通过运行python程序分解质因数

    Java 正整数分解质因数算法示例.rar

    Java实现正整数分解质因数的例子。如果数学好,相信这个代码不会难。在本例子中,输入90,打印出90=2*3*3*5。解题思路和方法:对n分解质因数,需要先找到一个最小的质数k,然后按下述步骤完成:  (1)如果这个质数恰...

    c语言分解质因数

    使用c语言 来求解分解质因数的这样一个常见算法问题

    分解质因数2.05

    1.将一个很大(最大为29位整数79228162514264337593543950335,即2^96-1)分解成最小的质因数并以指数结果显示,分解速度视情况而定,如果这个数的因数多,则较快,反之则慢. 2.将一个整数闭区间内的所有整数分解成最小的...

    将一个正整数分解质因数

    将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5

    分解质因数与质因数乘积

    分解质因数 分解质因数 分解质因数 分解质因数 分解质因数

    关于分解质因数的程序设计.cpp

    关于分解质因数的程序设计.cpp

Global site tag (gtag.js) - Google Analytics