质因数,质因数,开始以为要判断质数(素数),所以直接写了一个IsPrime函数。后来发现,,竟然没有用到= _ =|||....
又是因为它的要求是从大到小输出质因数,所以申请了一个数组A[n];
关于输出格式,用了一个flag,这是shen老板教的,嘿嘿。
分解质因数用的是“短除法”。。
代码如下:
#include <iostream>
#include<cmath>
using namespace std;
//bool IsPrime(int x,int m)
//{
//for(int i=2;i<=m;i++)
//if(x%i==0) {return false;break;}
//return true;
//}
int main()
{
int n,flag=0,cnt=-1;
int A[100];
cin>>n;
int m=n;
for(int i=2;i<=n;i++)
{
if(n%i==0)
{
n=n/i;
cnt++;
A[cnt]=i;
i=2;
}
else continue;
}
cout<<m<<"=";
for(int i=cnt;i>=0;i--)
{if(flag==0)
{
cout<<A[i];
flag=1;
}
else cout<<"*"<<A[i];}
cout <<endl;
return 0;
}