您的位置:首页 > 编程语言 > C语言/C++

[C/C++] 算法提高 质因数

2017-11-15 23:23 190 查看
将一个正整数N(1 < N < 32768)分解质因数。

例如,输入90,打印出 90=2*3*3*5。

样例输入

66

样例输出

66=2*3*11

#include <iostream>
using namespace std;

int main ()
{
int a;
int sum = 1;
int i = 1;

// 设置一个标志,判断是不是第一个数字。是的话不用输出*号。
int flag = 1;

cin >> a;
cout << a << "=";

int b = a; // 用来存放原数字

while (sum != b)
{
i++;
if (a % i == 0)
{
if (flag)
{
cout << i;
flag = 0;
}
else
cout << "*" << i;
a = a / i;
sum *= i;
i--; //下一个可质因素能跟前一个重复,比如45=3*3*5,第二个等于第一个,先减一再加一,还是上一个i。
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: