`

因式分解的算法

阅读更多
xml 代码
  1.   
  2.  笔试做到因式分解,因为时间不够没写完代码,现在把代码补全    
  3. #include<iostream.h>  
  4. #include <stdlib.h>  
  5.   
  6. int *divp(int m,int &k);   
  7. bool isp(int n);   
  8.   
  9. int main()   
  10. {   
  11.  int w;   
  12.     int l=0;   
  13.  int *p;   
  14.  int res[100]={0};   
  15.  cout<<"输入要因式分解的数"<<endl;   
  16.  cin>>w;   
  17.  if(isp(w)){   
  18.   cout<<w<<"是质数不能因式分解"<<endl;   
  19.   exit(0);   
  20.  }   
  21.  else   
  22.  {   
  23.   p=divp(w,l);   
  24.  }   
  25.     
  26.  cout<<w<<"可因式分解为:"<<endl;   
  27.     
  28.  for(int h=0;h<l;h++)   
  29.  { if(h==l-1)   
  30.      cout<<p[h]<<endl;   
  31.   else   
  32.      cout<<p[h]<<"*";   
  33.     
  34.  }   
  35.     delete   []p;   
  36.  p   =   NULL;    
  37.     
  38.   
  39.     
  40.  return 0;   
  41. }   
  42.   
  43. int *divp(int m,int &k)   
  44. {    
  45.  int   *res   =   new   int[100];   
  46.     
  47.  while(m!=1)   
  48.  {   
  49.      
  50.   for(int i=2;i<m+1;i++)   
  51.   {    
  52.       
  53.    if(m%i==0)   
  54.    {    
  55.                 m=m/i;   
  56.     if(isp(i)){   
  57.   
  58.      res[k]=i;   
  59.      if(isp(m))   
  60.      {   
  61.       k++;   
  62.      res[k]=m;   
  63.      break;   
  64.      }   
  65.      k++;   
  66.      break;   
  67.     }   
  68.        
  69.    }   
  70.       
  71.   }   
  72.  }   
  73.     
  74.  return res;   
  75. }   
  76.   
  77. bool isp(int n)   
  78. {   
  79.  int c=0; //保存整除因数的个数   
  80.  for(int j=2;j<n+1;j++)//除数遍历   
  81.  {    
  82.      
  83.   if(n%j==0)//整除   
  84.   {   
  85.    c++;   
  86.   }   
  87.  }   
  88.  if(c==1)//表明只有一个整数因子   
  89.   return true;   
  90.  else   
  91.   return false;   
  92. }   
  93.   
分享到:
评论
4 楼 sunnycare 2008-02-13  
有点意思啊
3 楼 ggggqqqqihc 2008-02-13  
我还以为是多项式的因式分解
2 楼 yzfy 2008-01-22  
楼主,这是因子分解不是因式分解。。。。。。。。。。。。。
1 楼 rappy 2007-12-12  
bool isp(int n)   
{   
int c=0; //保存整除因数的个数   
for(int j=2;j<n+1;j++)//除数遍历   
{    
     
  if(n%j==0)//整除   
  {   
   c++;   
  }   
}   
if(c==1)//表明只有一个整数因子   
  return true;   
else   
  return false;   
}   
这个得改进.

相关推荐

Global site tag (gtag.js) - Google Analytics