分解质因数,是一个非常重要的数学知识。小伙伴们大家好,我是@学霸小羊,今天讲讲分解质因数。
首先,要用到一个判断质数的函数:
bool zhi_shu_pan_duan(int n)
{
bool flag=1;
int i=0;
for (i=2;i<=sqrt(n);i++)//除了1和它本身之外没有任何其他的因数,就是质数。
{
if (n % i == 0)
{
flag = 0;
break;
}
}
return flag;
}
首先,第一个除以的质数一定是2,然后不断将2加1,到下一个质数,以此类推。
代码如下:
#include<bits/stdc++.h>
using namespace std;
bool zhi_shu_pan_duan(int n)
{
bool flag=1;
int i=0;
for (i=2;i<=sqrt(n);i++)//除了1和它本身之外没有任何其他的因数,就是质数。
{
if (n % i == 0)
{
flag = 0;
break;
}
}
return flag;
}
int main()
{
int n;//分解n
cin>>n;
cout<<n<<"=";
for(int i=2;;)
{
if(zhi_shu_pan_duan(i)&&n%i==0)
{
cout<<i<<"×";
n=n/i;
}
else i++;
if(zhi_shu_pan_duan(n)) {
cout<<n;
return 0;
}
}
return 0;
}
运行结果:
好啦!今天就讲到这里,拜拜!