这段代码是一个简单的C++程序,用于将输入的整数分解为质因数并输出其质因数分解形式。
程序的主要流程如下:
-
引入
<bits/stdc++.h>
头文件:这个头文件实际上包含了C++标准库中的几乎所有头文件,因此它可以简化代码,但通常不建议在生产环境中使用,因为它可能导致编译时间增加。 -
使用
using namespace std;
语句:这使得我们可以直接使用标准库中的名称,如cin
和cout
,而不需要加std::
前缀。 -
在
main()
函数中:-
声明一个整数变量
num
。 -
通过
cin >> num;
从标准输入读取一个整数。 -
输出该整数,后面跟一个等号。
-
使用一个
for
循环,从2开始,直到输入的整数num
。-
在循环内部,使用
while
循环检查num
是否能被当前的i
整除。- 如果可以,输出
i
(一个质因数)。 - 将
num
除以i
,这样我们就可以继续查找下一个质因数。 - 如果
num
不等于1(即还有其他的质因数),则输出一个星号(*
)。
- 如果可以,输出
-
-
在所有循环结束后,输出一个换行符。
-
举个例子,如果输入是 12
,程序的输出将是 12=2*2*3
,因为12可以分解为2、2和3的乘积。
这段代码的一个小优化点是,你可以提前结束 for
循环,当 num
变为1时,因为这意味着所有的质因数都已经被找到了。这样,你就不需要继续检查更大的数是否是 num
的因数。但这并不是必须的,因为当前的代码也能正确工作。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int num;
cin >> num;
cout << num << "=";
for (int i = 2; i <= num; i++)
{
while (num % i == 0)
{
cout << i;
num /= i;
if (num != 1)
cout << "*";
}
}
cout << endl;
return 0;
}