辅导笔记(4):质因数分解

2018-08-31  本文已影响0人  David_IT

// 把一个合数分解成若干个质因数的乘积的形式,即求质因数的过程叫做分解质因数。

//输入样例:36

//输出:36=2*2*3*3

#include<iostream>

#define N 101

using namespace std;

int a[N],b[N];

bool isprime(int x){

for(int i=2;i*i<=x;i++){

if(x%i==0) {

return false;

break;

}

}

return true;

}

int main()

{

int n;

cin>>n;

int s=1,j=1;//s表示累积

if(n<2||n/2!=0) cout<<"n不是合数!"<<endl;

for(int i=2;i<=n;i++)

  if(isprime(i))

  {

  a[j]=i;

  j++;

  }

//  测试是否找出了全部可能的质数因子 

// for(int i=1;i<n;i++)

//   if(a[i]!=0)

//   cout<<a[i]<<' ';

    int i=1,k=1;

int m=n;

while(s!=n){

if(m%a[i]==0&&m!=0)

  {

  b[k]=a[i];

  s=s*b[k];

  k++;

  m=m/a[i];

  }

else  i++;

}

  cout<<n<<"="<<b[1];

  for(int i=2;i<k;i++)

  if(b[i]!=0)

  cout<<'*'<<b[i];

return 0;

}

上一篇下一篇

猜你喜欢

热点阅读