Start New Discussion within our Software Development Community

so this program suppose to find number of primes (number that divides only by itself) in the given range. I know the problem is with my "for" statement.. i just cant find it :( Thank you

#include <iostream>
using namespace std;

int main()
{
    int intStart, intEnd, intPrime;
    intPrime=0;
    cout << "Enter starting number: ";
    cin >> intStart;
    cout << "Enter ending number: ";
    cin >> intEnd;
    int DivideBy = 2;
    for (int Number=intStart; Number<=intEnd; Number++){
    while (Number%DivideBy!=0){
      DivideBy++;
    if (DivideBy==Number){
      intPrime++; }
      }
     
 }
   cout <<"Number of primes in range: "<<intPrime<<endl;
    system("pause");
    return (0);
}

so this program suppose to find number of primes (number that divides only by itself) in the given range. I know the problem is with my "for" statement.. i just cant find it :( Thank you

You're Welcome.... :D


No wait... OK...

First, here's the code (formatted properly) that contains the problem:

int DivideBy = 2;
    for (int Number=intStart; Number<=intEnd; Number++)
    {
        while (Number%DivideBy!=0)
        {
            DivideBy++;
            if (DivideBy==Number)
            {
                intPrime++; 
            }
        }
    }

1st: set DivideBy before the while loop. You need that initialized foe each number in the for loop
2nd: testing if (DivideBy==Number) inside the loop does no good. You have to test it outside the while loop to see if you went all the way from 2 to Number. If do, it's prime.

This article has been dead for over six months. Start a new discussion instead.