I need help with following algorithm:
Initaliaze a counter at 2;
So long as the counter is less then or equal to number;
if the counter divides the number evenly; //<<==problem
display the counter;
else add one to the counter;
-------
so i just cant figure how to check: "if the counter divides the number evenly;"
that's my code

``````intNumb = 0;
cout << "Enter a number: ";
cin >> intNumb;
intDivider = 2;

while (intDivider <= intNumb) {

if ( intNumb%intDivider!= intNumb ) //<<==problem
{
cout << intDivider<<" ";
intNumb = intNumb / intDivider;
}
else
{

intDivider++;
}

}``````

Thank you.

3
Contributors
3
Replies
4
Views
10 Years
Discussion Span
Last Post by WolfPack

so i just cant figure how to check: "if the counter divides the number evenly;"

Something like

``````if ( intNumb % intDivider == 0 &&  (intNumb/intDivider)%2 == 0)
{
// intNumb is divided by intDivider evenly
}``````

I hope I got the meaning of dividing evenly correctly.

Don't need the compound if. `if ((intNumb % intDivider) == 0)` will suffice.

Don't need the compound if. `if ((intNumb % intDivider) == 0)` will suffice.

Looks like I interpreted the meaning of dividing evenly incorrectly.

Say for example intNumb = 6 and intDivider = 2. Clearly intNumb is divisible by intDivider, so intNumb % intDivider == 0 is true. But the quotient is 3, which is odd. So I thought intNumb is not divided evenly by intDivider. Hence the second test.

Did some searching, and WaltP is correct. So no need for the second part of the comparison.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.