#include "pch.h"
#include
using namespace std;
int main()
{
int a, m, i = 2, j;
cout << "请输入一个整数" << endl;
cin >> a;
while(i<a)
{
for (j = 2; j <= a; j++)
{
if ((a%j == 0) || (a%j == 1))
{
cout << j << " ";
break;
}
}
if (a != j)
a = a / j;
else
break;
}
return 0;
}
输入一个整数,输出该所有整数的素数因子。大佬看看逻辑错哪了??
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
_ZGq 2019-01-04 18:01关注提示:
1. m根本没有作用。
2. i的作用是什么?把i<a改成0<a。根本问题:把if ((a%j == 0) || (a%j == 1))中的|| (a%j == 1)去掉。
代码如下:#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
int a, j;
cout << "请输入一个整数" << endl;
cin >> a;
while(0<a)
{
for (j = 2; j <= a; j++)
{
if (a%j == 0)
{
cout << j << " ";
break;
}
}
if (a != j)
a = a / j;
else
break;
}本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 3无用