请教 求整数的所有因子
【题目】下列程序的功能是:输入一个整数,求出该整数的所有的因子,要求除1外,所求出的因子都是质数(素数)。如72=1*2*2*2*3*3。
含有错误的源程序如下:
#include <iostream>
using namespace std;
void fact(int n); //求n的各个因子(除1外,所有因子都为素数),并依次输出之
void main()
{
int x;
cout<<"输入一个正整数:";
cin>>x;
cout<<"该整数所求的因子为:"<<endl;
fact(&x);
}
void fact(int n)
{
int flag=true; //flag为是否继续找因子的标志
cout<<n<<"=1*"; //1是任意整数的因子,所以进入函数后直接输出因子1
if(flag)
{
for(int j=2;j<n;j++)
if(n%j!=0) break; // 这句是什么意思? [color=#FF0000][/color]
if(j<n)
{
cout<<j<<"*";
n%=j;
}
else flag=false;
}
cout<<n<<endl;
我的问题是:if (n%j==0) break ; 这句是什么意思?
[解决办法]
for(int j=2;j<n;j++)
if(n%j!=0) break; // 如果j能被n整除(j就是n的因子了),跳出循环
[解决办法]
for(int j=2;j<n;j++) if(n%j!=0) break; // 如果j能被n整除(j就是n的因子了),跳出循环
[解决办法]
................我们考试怎么没题目,。
[解决办法]
我的问题是:if (n%j==0) break ; 这句是什么意思?
假如n%j 取余为0 就跳出循环
[解决办法]
if(n%j!=0) break; // 这这里主要是要确定j的值啊。
后面的语句才好执行啊。。。
[解决办法]
。。。。你理解错了吧。
for 里面只有一个if.