Yes ,I can ! 2019-01-04 17:51 采纳率: 0%
浏览 2711
已采纳

输入一个整数,输出该所有整数的素数因子。大佬看看逻辑错哪了??

#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;
}

  • 写回答

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;
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?