初级C语言算法实现分解质因数
2016-10-23 11:53
453 查看
简单算法例题,摘自C语言网,如何分解质因数。
题目:
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
2.程序源代码:
/* zheng int is divided yinshu*/
main()
{
int n,i;
printf(“\nplease input a number:\n”);
scanf(“%d”,&n);
printf(“%d=”,n);
for(i=2;i<=n;i++)
{
while(n!=i)
{
if(n%i==0)
{ printf(“%d*”,i);
n=n/i;
}
else
break;
}
}
printf(“%d”,n);
printf("C语言网学习交流www.dotcpp.com");
}
更多的经典算法来自C语言网,附上训练场:
http://www.dotcpp.com/oj/problemset.php
题目:
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
2.程序源代码:
/* zheng int is divided yinshu*/
main()
{
int n,i;
printf(“\nplease input a number:\n”);
scanf(“%d”,&n);
printf(“%d=”,n);
for(i=2;i<=n;i++)
{
while(n!=i)
{
if(n%i==0)
{ printf(“%d*”,i);
n=n/i;
}
else
break;
}
}
printf(“%d”,n);
printf("C语言网学习交流www.dotcpp.com");
}
更多的经典算法来自C语言网,附上训练场:
http://www.dotcpp.com/oj/problemset.php
相关文章推荐
- C语言实现的扫描线种子填充算法
- 算法.数学.初级.求最小公倍数--(利用最大公约数的辗转相除法),powerbuilder powerscript实现
- 10个重要的算法C语言实现源代码(其1-拉格朗日)
- 10个重要的算法C语言实现源代码(8-9-10-----秦九昭和幂法和高斯塞德尔)
- 10个重要的算法C语言实现源代码(其6和7--牛顿-科特斯和雅克比)
- 二维、结构网格单相流SIMPLE 算法的C语言实现
- 10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔
- 数值计算方法与算法:C语言实现利用Gauss消元法解方程组
- 10个重要的算法C语言实现源代码
- 10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔
- 有关统计单词频率的算法c语言实现
- C语言中实现 点在多边形内 算法
- md5 算法的c语言实现及应用
- 10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔
- 10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔
- 算法.数学.初级.求最大公约数--辗转相除法,powerbuilder powerscript实现
- 一个UUID生成算法的C语言实现 --- WIN32版本
- 防脉冲干扰移动平均值法数字滤波器的C语言算法及其实现
- 10个重要的算法C语言实现源代码(其3--高斯列主元消去法)
- 线性查找算法的C语言实现