永发信息网

C++编程求一个数的所有素数因子

答案:3  悬赏:60  手机版
解决时间 2021-03-07 19:06
  • 提问者网友:爱了却不能说
  • 2021-03-07 11:05
#include<iostream>
using namespace std;
int main()
{
int n,i,m;
cout<<"请输入一个数"<<endl;
cin>>n;
for(i=2;i<=n;)
{for(m=1;m<=i;m++)
{if(i%m&&!n%i)
cout<<i<<endl;
else
i++;}}
}

哪里错了?没语法错误。。就是运行输入一个数之后没反应???求解~~~
最佳答案
  • 五星知识达人网友:西风乍起
  • 2021-03-07 11:28
没有语法错,但算法有问题。请看下面程序:
#include<iostream>
using namespace std;
int main()
{
int n,n0,i=2;
cout<<"请输入一个数"<<endl;
cin>>n;
n0=n;
while(n0>=i)
{
if(n0%i==0)
{
cout <<i <<" ";
n0 /= i;
}
else
i++;
}
if(n0!=1)
cout <<n0;
cout <<endl;
}
全部回答
  • 1楼网友:一把行者刀
  • 2021-03-07 13:38
#include<iostream> using namespace std; int main() { int n,n0,i=2; cout<<"请输入一个数"<<endl; cin>>n; n0=n; while(n0>=i) { if(n0%i==0) { cout <<i <<" "; while(n0%i==0) n0 /= i; } i++; } cout <<endl; system("pause"); } 这样可以避免重复输出
  • 2楼网友:上分大魔王
  • 2021-03-07 12:01
没有语法错,但算法有问题。请看下面程序: #include&lt;iostream&gt; using namespace std; int main() { int n,n0,i=2; cout&lt;&lt;"请输入一个数"&lt;&lt;endl; cin&gt;&gt;n; n0=n; while(n0&gt;=i) { if(n0%i==0) { cout &lt;&lt;i &lt;&lt;" "; n0 /= i; } else i++; } if(n0!=1) cout &lt;&lt;n0; cout &lt;&lt;endl; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯