从键盘上输入一个整数,输出该整数的所有素因子.例如,输入60,输出为2、2、3和5#includeusing namespace std;void fun(int);void main(){\x05int n;\x05cout n; \x05void fun(int n);}void fun(int n){\x05int i = 2;\x05int m;\x05for (i
来源:学生作业帮助网 编辑:六六作业网 时间:2025/02/02 08:38:36
从键盘上输入一个整数,输出该整数的所有素因子.例如,输入60,输出为2、2、3和5#includeusing namespace std;void fun(int);void main(){\x05int n;\x05cout n; \x05void fun(int n);}void fun(int n){\x05int i = 2;\x05int m;\x05for (i
从键盘上输入一个整数,输出该整数的所有素因子.例如,输入60,输出为2、2、3和5
#include
using namespace std;
void fun(int);
void main()
{
\x05int n;
\x05cout n;
\x05void fun(int n);
}
void fun(int n)
{
\x05int i = 2;
\x05int m;
\x05for (i = 2; i < n;i++)
\x05{
\x05\x05if (n % i == 0)
\x05\x05{
\x05\x05\x05cout
从键盘上输入一个整数,输出该整数的所有素因子.例如,输入60,输出为2、2、3和5#includeusing namespace std;void fun(int);void main(){\x05int n;\x05cout n; \x05void fun(int n);}void fun(int n){\x05int i = 2;\x05int m;\x05for (i
问题分析
程序主要存在以下几个问题:
1、存在语法错误,少一个“}”,可能是贴代码时遗漏了.
2、在main函数里面不应该用
void fun(int n);这是函数声明,而不是调用.
3、既然fun采用递归调用的方式,那么每当找到一个素因子,就一个退出循环,否则会重复输出很多个因子(包括非素因子).
4、循环
for (i = 2; i < n;i++)应包括n,否则最后一个素因子无法输出.
参考修改
#include<iostream>#include<conio.h>
using namespace std;
void fun(int);
void main()
{
int n;
cout << "输入一位整数" << endl;
cin >> n;
fun(n);
getch();
}
void fun(int n)
{
int i = 2;
int m;
for (i = 2; i <= n;i++)
{
if (n % i == 0)
{
cout << i << "" << endl;
m=n / i;
fun(m);
break;
}
}
}
运行实例
输入一位整数60
2
2
3
5