Avatar billede nicklasw Nybegynder
17. marts 2006 - 21:42 Der er 3 kommentarer og
1 løsning

prim tal program

hej.
jeg har lavet et program der kan beregne om et tal som brugeren taster ind er et prim tal.
Problemet er at det ikke virker.
lige meget hvilkken tal man taster ind siger den at talet ikke er et prim tal.
her er koden

#include <cstdlib>
#include <iostream>

using namespace std;

// beregner om "op" kan gå om i "tal"

bool opi(long int op, long int tal)
{
    bool rigtig = false;
    long int res = 0;
    while (tal>res){
          res = res + op;
          if (tal == res){
                  rigtig = true;
          }
    }
    return rigtig;
}

//prøver alle tal af

bool beregn(long int input)
{
    bool rigtig;
    bool svar = false;
    long int tael = 1;
    long int halv = (input / 2);
    while (tael != halv)
    {
          svar = opi(tael, input);
         
          if (svar == true)
          {
                    rigtig = false;
          }
          tael += 1;
    }
    return rigtig;
}

int sporg()
{
    cout << "indtast et tal du vil have beregnet: ";
    long int input;
    cin >> input;
   
    if (beregn(input) == true)
    {
          cout << "Ja " << input << " er et prim tal!" << endl;
    }else{
          cout << "Nej " << input << " er ikke et prim tal!" << endl;
          }
   
    sporg();
}

int main(int argc, char *argv[])
{
    sporg();
    return EXIT_SUCCESS;
}


hvis der er nogen der er i tvivl om hvad prim tal er. så er det et tal som kun 1 og den selv kan gå op i f eks. 2, 3, 5, 7

M.V.H Nicklas
Avatar billede erikjacobsen Ekspert
17. marts 2006 - 21:45 #1
Du kunne begynde med at give "rigtig" en værdi i beregn-funktionen, inden while-løkken.
Og så kan opi-funktionen laves en del smartere ;)
Avatar billede nicklasw Nybegynder
17. marts 2006 - 21:49 #2
ja det var det... over så jeg.
den kan sikkert laves meget smartere. men er også ny begynder.
har du et bud på hvordan man kan lave den om, og du må godt lægge et svar
Avatar billede erikjacobsen Ekspert
17. marts 2006 - 21:52 #3
Jeg samler slet ikke på point, tak.

Det med uinitialiserede variabler fanges af oversætteren i mange nye sprog - og sparer programmøren for besvær.

Hvis  (storttal%lilletal==0)  så går lilletal op i storttal. % er modulus, dvs "rest ved division med"
Avatar billede nicklasw Nybegynder
17. marts 2006 - 22:00 #4
okay.
selvfølig det er folkeskolens 3 klasses matematik. haha hvor er jeg dum.
næsten pinlig, ADMIIIIN kom og slet dette indlæg da det vil forfølge mig hele mit liv på eksperten.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester