Proszę o pomoc bo nie poprawnie wychodzi wynik l - to liczba operacji. Przykładowo dla 10007 powinno mi wyjść 34 a wychodzi 16 a dla 1000003 334. Chciałbym wiedzieć co muszę poprawić by wynik był prawidłowy
#include <iostream>
using namespace std;
int main() {
int n, d=5, l=0;
bool pierwsza;
cin>>n;
pierwsza=(n>1);
if(n>2 && n%2==0) pierwsza=false;
if(n>3 && n%3==0) pierwsza=false;
while(pierwsza && (d*d)<=n){
if(n%d==0) pierwsza=false;
else if (n%(d+2)==0) pierwsza=false;
else d=d+6;
l++;
}
cout<<l;
return 0;
}