编写一个函数,它可以求出给定数的所有因子,如下形式显示其结果:72=2*2*2*3*3;

如题所述

#include<iostream>
using namespace std;

bool isPrime(int n) //判断是否为素数,因子肯定是素数
{
if(n < 2) return false;
if(n == 2) return true;
for(int i = 3; i*i <= n; i += 2)
if(n%i == 0) return false;
return true;
}

void print(int n)
{
int i=2;// 从2开始
cout<<"n=";
while(n>1)//n不为1,就执行循环
{
if(isPrime(i))//先判断是否是素数
{
if(n%i==0&&n>i)//如果能被整出
{
cout<<i<<"*";
n=n/i;
}
else if(n==i)//n被除到最后,跟因子相同,
{
cout<<i;//输出因子,不输出*号
n=n/i;
}
else i++;
}
else i++;
}
}

void main()
{
int n;
cout<<"输入数字";
cin>>n;
print(n);
}
温馨提示:答案为网友推荐,仅供参考
相似回答