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.

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.

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 article has been dead for over six months. Start a new discussion instead.