将一个正整数N(1<N<32768)分解质因数。例如,输入90,打印出90=2*3*3*5。
样例输入
66
样例输出
66=2*3*11
代码:
#include<iostream>
#include<cmath>
#include<iomanip>
#include<string>
using namespace std;
int main()
{
int a;
cin>>a;
bool flag=false;
for(int i=sqrt(a);i>1;i--)
{
if((a%i)==0)
{
flag=true;
}
}//判断是否是质数
cout<<a<<"=";
if(flag)//如果不是质数,循环进行分解
{
for(int i=2;i<=sqrt(a);i++)
{
if((a%i)==0)
{
cout<<i<<"*";
a=a/i;
i-=1;//避免重复因数而跳过
}
}
cout<<a;//记住最后输出本身
}
else
{
cout<<a;
}
return 0;
}
#include<cmath>
#include<iomanip>
#include<string>
using namespace std;
int main()
{
int a;
cin>>a;
bool flag=false;
for(int i=sqrt(a);i>1;i--)
{
if((a%i)==0)
{
flag=true;
}
}//判断是否是质数
cout<<a<<"=";
if(flag)//如果不是质数,循环进行分解
{
for(int i=2;i<=sqrt(a);i++)
{
if((a%i)==0)
{
cout<<i<<"*";
a=a/i;
i-=1;//避免重复因数而跳过
}
}
cout<<a;//记住最后输出本身
}
else
{
cout<<a;
}
return 0;
}