posts - 29,comments - 10,trackbacks - 0
假设x是一个正整数,它的值不超过65535(即1<x<=65535),请编写一个程序,将x分解为若干个素数的乘积。输入一个正整数x。输出x的素数乘积表示式,式中的素数从小到大排列,两个素数之间用“*”表示乘法。考虑素数的情况
#include <iostream>
using namespace std;
int main()
{
    
int x;
    cin
>>x;
    
for (int i=2;i<=x;i++)
    {
        
if (x%i==0)
        {
            x
/=i;
            
if(x==1)
            {
                cout
<<i;
                
break;
            }
            cout
<<i<<"*";
            i
=1;
        }
    }
    cout
<<endl;
    
return 0;
}
posted on 2009-06-17 15:11 The_Moment 阅读(2016) 评论(5)  编辑 收藏 引用 所属分类: ACM

FeedBack:
# re: 分解素因子
2009-08-17 16:26 | d
你程序错了的!!!
算法有问题
  回复  更多评论
  
# re: 分解素因子
2009-09-07 07:41 | The_Moment
哪里错了啊??!!@d
  回复  更多评论
  
# re: 分解素因子
2010-05-07 10:10 | dsdsd
@The_Moment
输出没有全部是素数  回复  更多评论
  
# re: 分解素因子[未登录]
2013-07-14 11:11 | Bourne
沒發現問題,很簡明。  回复  更多评论
  
# re: 分解素因子
2013-08-22 15:32 | sames
#include <iostream>
using namespace std;
int main()
{
int x;
cin>>x;
for (int i=2;i<=x;i++)
{
if (x%i==0)
{
x/=i;
if(x==1)
{
cout<<i;
break;
}
cout<<i<<"*";
i-=1;
}
}
cout<<endl;
return 0;
}  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理