求解 分解质因数
发布网友
发布时间:2022-06-09 00:36
我来回答
共2个回答
热心网友
时间:2023-09-12 18:03
根据最基本的原理,是从分解因式开始的。
任意一个大于1的整数,都可分解因式。
首先,你要知道什么是质数,质数是一个数只能写做它本身和1相乘的形式,如3=1*3
所以3是,但4=1*4=2*2,所以4不是。
那么分解因式就是把一个数写成所有质数相乘的形式
如12=2*2*3
这需要一个一个试,先从2开始,如果行,除一次,如:12/2=6
再重复,从2,再行再试,直到不能被2整除为止,然后再试3,3完后5……
直到变成个质数为止。
比如360
360除以2——180除以2——90除以2——45除以3——15除以3——5
5就已经是个质数了,到此为止。
所以360=2*2*2*3*3*5
这本来是有个书写形式可以变得简单的,只是这我用电脑无法打出来。
找两个数的最大公因式和最小公倍数原理一样。
把两个数都分解因式,比如360和520
360=2*2*2*3*3*5
520=2*2*2*5*13
最大公因数就是把它们相同部分找出来。
看他们相同的是都是三个2和一个5。于是最大公因数是:2*2*2*5=40
最小公倍数是找出最大公因数后,把其他部分相乘,再乘以最大公因数
360中,剩下的是:3*3=9
520中,就是13。
所以最小公倍数是:9*13*40=4680
其实简单点就是360*520/40=4680
即两数相乘再除以最大公因数。
热心网友
时间:2023-09-12 18:03
#include <stdio.h>
void main()
{
int n,i;
printf("请输入数:");
scanf("%d",&n);
for(i=2; i<=n; i++)
{
if(n%i == 0)
{
printf("%d*",i);
n = n/i;
i=1;
}
}
}