Опитвам се да разбера в c++ как да намеря всички прости числа в диапазон (използвайки 100 за сега)
Не съм загрижен за производителността, започвам с C++ и се опитвам да разбера това програмно упражнение от моята книга. Имам моята програма, която се опитвам да използвам по-долу, но тя продължава да връща false. Някакви идеи? Прочетох почти цялата помощ на googles/bing, както и препълването на стека. Мога да напиша код, за да работи с въвеждане на номера; просто не преглеждайте всички числа
някакви идеи какво правя грешно?
#include <iostream>
using namespace std;
bool isPrime(long n);
int main()
{
int i;
//some vars
char emptyVar;
//first loop (to increment the number)
for (i = 0; i <= 100; i++)
{
//checking all numbers below 100
if (isPrime(i) == true)
{
//is true
cout << i << ", ";
}
else if (isPrime(i) == false)
{
//is false
cout <<"false , ";
}
}
cin >> emptyVar;
}
bool isPrime(long n)
{
long i =0;
//checks to see if the number is a prime
for (i = 2; i < n; i++) // sqrt is the highest possible factor
{
if ( n % i == 0) // when dividing numbers there is no remainder if the numbers are both factors
{
// is a factor and not prime
return false;
}
else if (n % i != 0 && i >= 100)
{
//is not a factor
return true;
}
}
}
else if (n % i != 0 && i >= 100)
трябва да бъдеelse if (i > n/i)
. - person Will Ness   schedule 25.02.2013