我是szelt,今天又来跟大家讲题目了!
注:本专题需要用到while循环和for循环,以下是地址:
while循环地址:C++课程4:走不完的循环_szelt的博客-CSDN博客
for循环地址:C++第五课:简单又麻烦的for循环_szelt的博客-CSDN博客
相对来讲for循环是更好用的,但是这节课两个都要用。
好了进入正题,我们先来认识一下短除,短除是在找最小公因数以及最大公因数的数学办法,不过质因数分解也用得到它,并且因数和公因数只不过是1个和多个之间的差别。
比如分解60,方法如下:
60 = 2 * 30
30 = 2 * 15
15 ≠ 2 *
15 = 3 * 5
所以,60 = 2 * 2 * 3 * 5。
短除其实就是将除数从2开始不停的加(因为任何数都可以除以1),一直到自己本身,其中可以整除的是数的因数,如果一个数的因数只有1和本身,就说它是个质数(也称之为素数)。
废话不多说,直接上代码!!!
#include<iostream> //头文件
using namespace std;
int main()
{
int n; //要分解的数
cin >> n; //输入
cout << n << "="; //输出n等于
for (int i = 2;i <= n;i++) //利用循环来短除,如果除数到达了本身,就结束循环
{
while (n % i == 0) //只要是因数就循环判断,判断内容在下面
{
if (n != i) //如果没有到本身
{
cout << i << "*"; //输出因数乘
n /= i; //短除
}
else //如果到了本身
{
cout << n << endl; //说明是质数,打印自身
return 0; //直接结束程序,停止循环
}
}
}
return 0;
}
制作不易,给个赞谢谢!!!