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

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