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语言实现质因数分解的列子: #include void main( ) { int data, i = 2; scanf("%d", &data); while(data > 1) { if(data % i == 0) { printf("%d ", i); data /= i; } else i++;...
可以对超过64位最大整数(18446744073709551615,约1845亿亿,20位十进制数)的整数分解质因数。原创的全部源代码共享。 使用了.NET库的“大整数”类。界面为 Win Form 程序使用确定性算法。 做了尽可能多的优化...
c语言编写分解质因数实现求解两个数的最大公约数
易语言分解质因数源码,分解质因数,分解数字,分解_
分解质因数C++的程序算法设计,较为高效的实现办法
质因数(素因数或质因子)在数论里是指能整除给定正整数的质数,这里通过运行python程序分解质因数
3. 题目:将一个正整数分解质因数。 需要swing
用分解质因数法与短除法求三个数的最小公倍数.ppt
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果...
Java实现正整数分解质因数的例子。如果数学好,相信这个代码不会难。在本例子中,输入90,打印出90=2*3*3*5。解题思路和方法:对n分解质因数,需要先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰...
使用c语言 来求解分解质因数的这样一个常见算法问题
1.将一个很大(最大为29位整数79228162514264337593543950335,即2^96-1)分解成最小的质因数并以指数结果显示,分解速度视情况而定,如果这个数的因数多,则较快,反之则慢. 2.将一个整数闭区间内的所有整数分解成最小的...
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
分解质因数 分解质因数 分解质因数 分解质因数 分解质因数
关于分解质因数的程序设计.cpp
此程序可以找出你给的数的质因数,用java编译
分解 质因数.把一个数分解质因数.如果是素数,也分解. 其他的不说了.
用最初级的c语言实现1到2147483646之间的质因数分解,适合初学者。
把一个合数分解成若干个质因数乘积的形式(即求质因数的过程)叫做分解质因数。分解质因数(也称分解素因数)只针对合数。 输入一个正整数n ,将n 分解成质因数乘积的形式。 【输入】 一个正整数n 。 【输出】 分解成...
对整数进行质因数分解,C语言实现,希望能有所帮助