作业帮 > 综合 > 作业

从键盘上输入一个整数,输出该整数的所有素因子.例如,输入60,输出为2、2、3和5

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/05 21:35:07
从键盘上输入一个整数,输出该整数的所有素因子.例如,输入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
问题分析程序主要存在以下几个问题: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