Gå til innhold

ksgylja

Medlemmer
  • Innlegg

    5
  • Ble med

  • Besøkte siden sist

ksgylja sine prestasjoner

0

Nettsamfunnsomdømme

  1. Da fikk jeg ordnet alt.Tusen takk for god hjelp! ❤️ #importerer math-modulen import math #ber om et tall større enn 1 fra bruker n = int(input("Skriv et positivt heltall som er større enn 1:")) #funksjon for å finne minste primtallsfaktor def minsteFaktor(n): #Hvis delelig med 2 returnerer denne faktoren 2 #som jo da er den minste if (n % 2 == 0): return 2 # repetérer fra 3 til kvadratrot(n) i = 3; while(i * i <= n): if (n % i == 0): return i; i += 2; return n; #funksjon for å finne største primtallsfaktor def storsteFaktor(n): # Initiere den største faktoren # variabel med den laveste maxPrimtall = -1 # finn antallet 2'ere som dividerer n while n % 2 == 0: maxPrimtall = 2 n >>= 1 # ekvivalent til n /= 2 for i in range(3, int(math.sqrt(n)) + 1, 2): while n % i == 0: maxPrimtall = i n = n / i # Denne er for å takle dersom n # er et primtall større enn 2 if n > 2: maxPrimtall = n return int(maxPrimtall) #sjekker om bruker legger inn et tommytall og gir tilbakemelding på det if(n==3 or n==13 or n==113 or n==313 or n==613): print("Tommytall") #legger inn betingelsen at bruker må legge inn et tall som er større enn 1 elif(n<=1): print("Tallet må være større enn 1") #sjekker om minste faktor er et av tommytallene elif minsteFaktor(n)==3 or minsteFaktor(n)==13 or minsteFaktor(n)==113 or minsteFaktor(n)==313 or minsteFaktor(n)==613: print("Tommytall") #sjekker om største faktor er et av tommytallene elif storsteFaktor(n)==3 or storsteFaktor(n)==13 or storsteFaktor(n)==113 or storsteFaktor(n)==313 or storsteFaktor(n)==613: print("Tommytall") #dersom de ovenstående vilkårene ikke er gjeldende så skriver man ut største og minste faktor else: print("minste: " , minsteFaktor(n)) print("Største: " , storsteFaktor(n)) #kaller opp de to funksjonene minsteFaktor(n) storsteFaktor(n)
  2. Tusen takk for innspillene. Jeg har rotet veldig med å prøve ut ulike scenarier, men programmet kjører ikke slik jeg hadde tenkt. Mistenker at jeg ikke setter ting med riktig innrykk, eller feil sjekk av de ulike variablene. Ser at det går greit å sjekke om brukeren legger inn et tall større enn 1 og at det da kjører, men når jeg legger inn at det skal printes ut at man må taste et tall større enn 1, så klarer jeg ikke å stoppe programmet. Har prøvd quit(), men får bare feilmelding. Og "break" mener jeg bare kan stoppe en løkke? Og når jeg legger inn at dersom bruker legger inn et av "Tommytallene" så sjekker den likevel minste og største faktor. Vil jo ha det slik at det ikke gjør mer enn å skrive ut at det er et tommytall dersom bruker legger inn et slikt, men og at det sjekker de ulike faktorene slik at uansett om det er minste, største eller en hvilken som helst av faktorene så skriver den ut at det er et Tommytall, og så avslutter programmet. Tok forresten bort semikolon på slutten av return-setningene på minsteFaktor, -gjør det noe?
  3. Takk for svar! Ser at det jeg sliter mest med er den grunnleggende oppbyggingen mtp rekkefølge og innrykk. Blir fort knot når jeg setter det opp, og MYE feilsøking. Skal prøve litt til på det du skrev, men har aldri brukt switch før så tar nok litt tid 😉
  4. Hei. Har jobba ei stund med ei innleveringsoppgave som lyder som følger: Lage et program som etterspør et positivt heltall større enn 1 som input, og skriver ut det største og det minste primtallfaktoren til tallet. Bortsett fra når en av primtallsfaktorene er 3, 13, 113, 313 eller 613, da skal det bare skrives ut at det er et "Tommytall" Jeg har laget et program som finner største og minste primtallsfaktor, men sliter med å få det til å skrive ut "Tommytall". Altså siste del av oppgaveteksten. Prøvde å legge ved .py-fila, men fikk feilmelding. Tok derfor screenshot og la ved. Noen som har veiledning å gi meg?
×
×
  • Opprett ny...