webForumDet fria alternativet

Skulle försöka göra en primtalsgenerator..

C/C++

2 svar · 256 visningar · startad av K++

Medlem sedan juli 2002171 inlägg
Frågan#1

Försökte göra en prim generator, fast det blev något fel. Alla jämna tal sorteras bort fint och så.. Men när man skriver in ett primtal så går det dåligt.. Det blir typ en evighetsloop. Borde vara något fel i for - satsen...

#include <iostream.h>
#include <stdlib.h>

using namespace std;

void prim(int tal){

bool isprime = true;

if(tal % 2 == 0)
isprime = false;

if(tal % 2 != 0){
   for(int i=3; i <= tal;i+2){
         if(tal % i == 0){
            isprime = false;
            break;
        }
     }
}

if(isprime == true)
cout << tal << endl;
}

int main(){

int n;
cin >> n;

prim(n);

 system("PAUSE");
 return 0;
}
Medlem sedan aug. 2001458 inlägg
#2

Re: Skulle försöka göra en primtalsgenerator..

Ett hett tips är att gå igenom koden rad för rad och följa vad som händer. Lyckas man inte lösa problemet då, är det en god idé att köra under en debugger. Om du gjort detta tror jag du hade upptäckt att i alltid kommer ha värdet 3 eftersom du aldrig ändrar i.

Medlem sedan juli 2002171 inlägg
#3

smart tänkt, jag var för trött för att lyckas hitta några fel igår förmodligen, eller så kanske det beror på att jag är lite nybörjare...

jag ändrade ivf koden till ::

if(tal % 2 != 0){
for(int i=3; i <= tal-1;i+=2){
if(tal % i == 0){
isprime = false;
break;
}
}
}

och det funkade bra..

256 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)