1 c++
编写一个程序,生成用户输入的数字的所有因子.例如,数字12的因子为2*2*3.该程序具有以下要求:
用户必须输入正整数.如果用户输入其他内容,您的程序应输出错误消息并让用户输入新值.使用do/while循环确保用户输入成功.
必须按递增顺序输出因子.您的计划应报告的最低因素是2.
你的程序应该每行输出4个因子,每个因子在10个字符的字段中.(提示:输出因子的数量决定何时输出endl!)
您需要一个while循环来报告这些因素.以下是一些有用的提示:
如果(a%b == 0)则a是b的因子.
当您找到一个因子后,输出该因子,然后通过将该数除以因子来减少您正在使用的数...即b = b/a;
我有这个代码我无法让它显示因素.输入数字后,它结束时不显示因子.
#include<iostream>
using namespace std;
int factor(int& n)
{
for(int k=2; k<=n; k++)
if(n%k==0)
{
n = n/k;
return k;
}
}
int main()
{
int n;
int p=0;
do
{
cout << "Enter a Positive Integer :";
cin >> n;
} while(n<=0);
cout << "Factors are " << endl;
while(1)
{
if(n==1) break;
cout << factor(n) << " ";
p++;
if(p%4==0)
cout << endl; // new line after every 4 factors !!
system("pause");
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
由于你的(缺乏)缩进很难看到,但这一部分:
system("pause");
return 0;
Run Code Online (Sandbox Code Playgroud)
是内部的while(1)循环.它应该在while循环之外.