首页 > 代码库 > 最大公因数、最小公倍数、因式分解
最大公因数、最小公倍数、因式分解
最大公因数使用辗转相除法来求,最小公倍数则由这个公式来求。
最大公因数*最小公倍数=两数乘积
解法最大公因数可以使用递归与非递归求解,因式分解基本就是使用小于输入数的数值当作除数,去除以输入数值,如果可以整除就视为因数,要比较快的解法就是求出小于该数的所有质数,并试试看是不是可以整除,求质数是另一个问题,请参考Eratosthenes筛选求质数。
一、求最大公因数、最小公倍数
#include<stdio.h>
#include<stdlib.h>
int main(void){
int m,n,r;
int s;
printf("请输入两个数:");
scanf("%d %d",&m,&n);
s=m*n;
while(n!=0)
{
r=m%n;
m=n;
n=r;
}
printf("最大公倍数:%d\n",m);
printf("最小公约数:%d\n",s/m);
return 0;
}
二、因式分解
void Resolve(int n)
{
int i;
printf("%d=",n);
for(i=2;i*i<=n;)
{
if(n%i==0)
{
printf("%d*",i);
n/=i;
}
else
i++;
}
printf("%d\n",n);
}
本文出自 “青春,不回头” 博客,请务必保留此出处http://zhangye.blog.51cto.com/9858037/1607559
最大公因数、最小公倍数、因式分解