从键盘上输入一个整数,输出该整数的所有素因子.例如,输入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

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 12:03:12

从键盘上输入一个整数,输出该整数的所有素因子.例如,输入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