C# Hitta alla primtal mellan 1 och talet som anges som parameter

Permalänk
Medlem

C# Hitta alla primtal mellan 1 och talet som anges som parameter

Hej!
Skulle behöva hjälp med ett program i C# som hittar alla primtal mellan 1 och parametern som man matar in(t.ex. 3400) sedan skriva ut dem.

Programmet ska helst använda sig av for-loopar.

Hoppas att någon kan hjälpa mig!
MVH

Permalänk
Medlem

"Programmet ska helst använda sig av for-loopar."

Bara det ordet får jag att förstå att detta handlar om en skoluppgift. Ingen här kommer hjälpa dig med det eller skriva det till dig.

Ifall du vill ha hjälp, visa hur långt du har kommit och sedan kan vi hjälpa dig med specifika bitar.

Om du har problem med att förstå och hitta en former för Primtal så har du lite tips på traven här: http://sv.wikipedia.org/wiki/Eratosthenes_s%C3%A5ll

Visa signatur

Speldator: i7-8700k, 32GB DDR4, RTX2080
Server 1: SB 2500k, MZI -P67GD55, 32GB DDR3, Corsair MX 240GB SSD
Surface Pro 2017, Konsoler: Typ alla, Oculus Rift

Permalänk
Medlem

Vad är det du behöver hjälp med? Hur man skriver for-loopar eller hur man kollar om ett tal är ett primtal?

Permalänk
Medlem
Skrivet av MugiMugi:

"Programmet ska helst använda sig av for-loopar."

Bara det ordet får jag att förstå att detta handlar om en skoluppgift. Ingen här kommer hjälpa dig med det eller skriva det till dig.

Ifall du vill ha hjälp, visa hur långt du har kommit och sedan kan vi hjälpa dig med specifika bitar.

Om du har problem med att förstå och hitta en former för Primtal så har du lite tips på traven här: http://sv.wikipedia.org/wiki/Eratosthenes_s%C3%A5ll

Skrivet av Thomas H:

Vad är det du behöver hjälp med? Hur man skriver for-loopar eller hur man kollar om ett tal är ett primtal?

Vet jag att jag ska använda mig av operatorn "%" för att kolla om det är ett primtal. Jag vet hur jag ska kolla om ett tal är primtal eller ej, men inte hur jag ska kolla 3400 st. Så ja, behöver hjälp med for-loopen.
Hoppas ni förstår.

Permalänk
Medlem
Skrivet av kempes:

Vet jag att jag ska använda mig av operatorn "%" för att kolla om det är ett primtal. Jag vet hur jag ska kolla om ett tal är primtal eller ej, men inte hur jag ska kolla 3400 st. Så ja, behöver hjälp med for-loopen.
Hoppas ni förstår.

Du ska utföra algoritmen på x antal nummer, det är detta du löser med en enkel for-loop. Jag rekommenderar dig att läsa kurslitteraturen.

Permalänk
Medlem

Exempel på for-loop:

for (int i = 0; i < 10; i++) Console.WriteLine(i);

1) Variabeln i skapas och ges värdet 1
2) Vilkoret kontrolleras (i < 10). Om sant gå vidare, avsluta loopen annars
3) Innehållet i loopen utförs (värdet på i skrivs ut med Console.WriteLine())
4) i ökas med 1 (i++)
5) Gå till #2

I ditt fall ska du alltså gå igenom alla tal från 1 till det som matas in (e.g. 3400), och för varje utföra kontrollen om det är ett primtal. En brute-force metod för att kolla primtal är att försöka dela talet med alla tal från 2 t.o.m. kvadratroten av talet, och om något tal ger en division utan rest så är talet inte ett primtal. Båda dessa kan lösas med for-loopar.

Permalänk
Medlem
Skrivet av Thomas H:

Exempel på for-loop:

for (int i = 0; i < 10; i++) Console.WriteLine(i);

1) Variabeln i skapas och ges värdet 1
2) Vilkoret kontrolleras (i < 10). Om sant gå vidare, avsluta loopen annars
3) Innehållet i loopen utförs (värdet på i skrivs ut med Console.WriteLine())
4) i ökas med 1 (i++)
5) Gå till #2

I ditt fall ska du alltså gå igenom alla tal från 1 till det som matas in (e.g. 3400), och för varje utföra kontrollen om det är ett primtal. En brute-force metod för att kolla primtal är att försöka dela talet med alla tal från 2 t.o.m. kvadratroten av talet, och om något tal ger en division utan rest så är talet inte ett primtal. Båda dessa kan lösas med for-loopar.

Så här långt har jag kommit nu:

int max; Console.WriteLine("Mata in max"); max = Console.Read(); for (int i = 0; i < max; i++) { }

Permalänk
Medlem

Du skrev:

Skrivet av kempes:

Jag vet hur jag ska kolla om ett tal är primtal eller ej, men inte hur jag ska kolla 3400 st. .

Så gör det i for-loopen. Då kollar du alla.

Permalänk
Medlem

Blev visst lite fel ovanför, i får naturligtvis värdet 0, inte 1 som jag skrev.

Permalänk
Medlem
Skrivet av kempes:

Så här långt har jag kommit nu:

int max; Console.WriteLine("Mata in max"); max = Console.Read(); for (int i = 0; i < max; i++) { }

Du behöver köra Console.ReadLine() för att läsa in mer än en enda siffra. Därefter behöver du omvandla den inlästa strängen till en int, vilket går att göra med Convert.ToInt32();

Jag rekommenderar att du använder en metod för att kontrollera ifall talet är ett primtal, men ni kanske inte har gått igenom metoder i kursen än.

Grunden till metoden – som vi kan kalla IsPrime – ser i alla fall ut så här:

bool IsPrime(int n) { // om n är ett primtal, returnera true, annars returnera false }

för att testa din primtalsmetod kan du utanför loopen skriva ett litet test:

Console.WriteLine("IsPrime(1) ==", IsPrime(1)); Console.WriteLine("IsPrime(2) ==", IsPrime(2)); Console.WriteLine("IsPrime(3) ==", IsPrime(3)); Console.WriteLine("IsPrime(4) ==", IsPrime(4));

Resultatet ska bli false, true, true, false för 1, 2, 3 respektive 4. När det fungerar kan du stoppa in IsPrime i din for-loop och skriva ut alla i där IsPrime(i) är true.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Ett rätt lätt sätt jag kan komma på utan att använda extra funktioner är en for-sats inuti en for-sats, där den "stora" for-satsen går igenom alla tal, och den lilla testar varje tal. Hoppas det är lite hjälp på traven.

Visa signatur

ASUS ROG STRIX Z270H GAMING, i7 7700K, MSI GTX 1080 Ti 11 GB Gaming, Corsair HX 850W, Corsair 16GB, Samsung 850 500 GB, Samsung 830 256GB, WD Black 1TB, BenQ XL2420T

Permalänk
Medlem

"Programmet ska helst använda sig av for-loopar". Är det bara för att ni ska lära er "manuella"-loopar etc. ?
För det går att få ut allt genom att skriva en LINQ-sats bl.a. men jag gissar på att det är överkurs (enligt läraren) och kommer resultera i ej-godkänt.

Visa signatur

Utvecklare (Technical Director) / Delägare - Björnmamman

Permalänk
Medlem
Skrivet av Teknocide:

Du behöver köra Console.ReadLine() för att läsa in mer än en enda siffra. Därefter behöver du omvandla den inlästa strängen till en int, vilket går att göra med Convert.ToInt32();

Jag rekommenderar att du använder en metod för att kontrollera ifall talet är ett primtal, men ni kanske inte har gått igenom metoder i kursen än.

Grunden till metoden – som vi kan kalla IsPrime – ser i alla fall ut så här:

bool IsPrime(int n) { // om n är ett primtal, returnera true, annars returnera false }

för att testa din primtalsmetod kan du utanför loopen skriva ett litet test:

Console.WriteLine("IsPrime(1) ==", IsPrime(1)); Console.WriteLine("IsPrime(2) ==", IsPrime(2)); Console.WriteLine("IsPrime(3) ==", IsPrime(3)); Console.WriteLine("IsPrime(4) ==", IsPrime(4));

Resultatet ska bli false, true, true, false för 1, 2, 3 respektive 4. När det fungerar kan du stoppa in IsPrime i din for-loop och skriva ut alla i där IsPrime(i) är true.

Egentligen ska vi göra med en metod. Men sen kom hon på att vi inte har gått igenom det. Men för högre betyg tror jag det bara är bra, att man har tagit reda på det själv. Det är ett mål i kursen att man ska kunna lösa problem med hjälp av att söka och fråga andra programmerare.

Det jag inte förstår är hur jag ska testa alla tal. Har fått lite förslag men förstår verkligen inte.

Skickades från m.sweclockers.com

Permalänk
Skrivet av kempes:

Vet jag att jag ska använda mig av operatorn "%" för att kolla om det är ett primtal. Jag vet hur jag ska kolla om ett tal är primtal eller ej, men inte hur jag ska kolla 3400 st. Så ja, behöver hjälp med for-loopen.
Hoppas ni förstår.

Om du ska kontrollera ifall talet 3400 är ett primtal, så behöver du kontrollera om det är delbart med ett annat tal. Du behöver inte dela med alla talen mellan 1-3399, utan det räcker med att dela med talen 1 till rot(3400), dvs alla tal upp till 58 (vilket ungefär är roten ur 3400). Men det behöver du likväl göra. Som ett litet tips på vägen från en som har suttit med samma skoluppgift.

Visa signatur

CPU: AMD FX-8350 @ 4.7GHz | RAM: 32GB Vengeance @1600MHz | GPU: Asus HD7970 DCII Top @ 1.0/5.6 GHz | ASRock 990FX Fatal1ty | PSU: Newton R3 800W Platinum | HD: 128 GB Plextor M3 Pro, 300 GB WD Green | triple-boot: Win7-64,WinXP-32,debian-64

Permalänk
Medlem
Skrivet av kempes:

Egentligen ska vi göra med en metod. Men sen kom hon på att vi inte har gått igenom det. Men för högre betyg tror jag det bara är bra, att man har tagit reda på det själv. Det är ett mål i kursen att man ska kunna lösa problem med hjälp av att söka och fråga andra programmerare.

Det jag inte förstår är hur jag ska testa alla tal. Har fått lite förslag men förstår verkligen inte.

Skickades från m.sweclockers.com

Om du gör en metod som testar ett godtyckligt primtal kan du använda samma metod för att testa en godtycklig mängd primtal.

Som ett exempel kan vi göra en metod som kollar om ett tal börjar på siffran tre!

bool NumberBeginsWith3(int number) { return number.ToString()[0] == '3'; }

Nu kan vi använda metoden för att kolla om ett godtyckligt nummer börjar med tre:

int n = 42; // numret vi vill testa Console.WriteLine("Börjar " + n + " med tre?"); if (NumberBeginsWith3(n)) { Console.WriteLine("Ja!"); } else { Console.WriteLine("Nej..."); }

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Thomas H:

Exempel på for-loop:

for (int i = 0; i < 10; i++) Console.WriteLine(i);

1) Variabeln i skapas och ges värdet 1
2) Vilkoret kontrolleras (i < 10). Om sant gå vidare, avsluta loopen annars
3) Innehållet i loopen utförs (värdet på i skrivs ut med Console.WriteLine())
4) i ökas med 1 (i++)
5) Gå till #2

I ditt fall ska du alltså gå igenom alla tal från 1 till det som matas in (e.g. 3400), och för varje utföra kontrollen om det är ett primtal. En brute-force metod för att kolla primtal är att försöka dela talet med alla tal från 2 t.o.m. kvadratroten av talet, och om något tal ger en division utan rest så är talet inte ett primtal. Båda dessa kan lösas med for-loopar.

Skrivet av magnusvmt:

Du skrev:

Så gör det i for-loopen. Då kollar du alla.

Skrivet av Teknocide:

Du behöver köra Console.ReadLine() för att läsa in mer än en enda siffra. Därefter behöver du omvandla den inlästa strängen till en int, vilket går att göra med Convert.ToInt32();

Jag rekommenderar att du använder en metod för att kontrollera ifall talet är ett primtal, men ni kanske inte har gått igenom metoder i kursen än.

Grunden till metoden – som vi kan kalla IsPrime – ser i alla fall ut så här:

bool IsPrime(int n) { // om n är ett primtal, returnera true, annars returnera false }

för att testa din primtalsmetod kan du utanför loopen skriva ett litet test:

Console.WriteLine("IsPrime(1) ==", IsPrime(1)); Console.WriteLine("IsPrime(2) ==", IsPrime(2)); Console.WriteLine("IsPrime(3) ==", IsPrime(3)); Console.WriteLine("IsPrime(4) ==", IsPrime(4));

Resultatet ska bli false, true, true, false för 1, 2, 3 respektive 4. När det fungerar kan du stoppa in IsPrime i din for-loop och skriva ut alla i där IsPrime(i) är true.

Skrivet av Madsoul:

"Programmet ska helst använda sig av for-loopar". Är det bara för att ni ska lära er "manuella"-loopar etc. ?
För det går att få ut allt genom att skriva en LINQ-sats bl.a. men jag gissar på att det är överkurs (enligt läraren) och kommer resultera i ej-godkänt.

Skrivet av bellasoda:

Om du ska kontrollera ifall talet 3400 är ett primtal, så behöver du kontrollera om det är delbart med ett annat tal. Du behöver inte dela med alla talen mellan 1-3399, utan det räcker med att dela med talen 1 till rot(3400), dvs alla tal upp till 58 (vilket ungefär är roten ur 3400). Men det behöver du likväl göra. Som ett litet tips på vägen från en som har suttit med samma skoluppgift.

Har nu suttit några timmar och kommer fram till detta:

int tmp, i, num; Console.Write("Mata in nummer: "); num = Convert.ToInt32(Console.ReadLine()); for (i = 2; i < num; i++) { for (num = 2; 1 <= num; num++) { tmp = num % i; if (tmp == 0) { break; } else { Console.WriteLine(num); } } } } } }

Men olyckligtvis funkar det inte. Någon som har lust att hjälpa mig lösa problemet?

Permalänk
Medlem
Skrivet av kempes:

Har nu suttit några timmar och kommer fram till detta: ...
Men olyckligtvis funkar det inte. Någon som har lust att hjälpa mig lösa problemet?

Din inre for-loop ser lite underlig ut; du sätter num till 2 och loopar samt ökar num så länge 1 är mindre-eller-likamed num.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Din inre for-loop ser lite underlig ut; du sätter num till 2 och loopar samt ökar num så länge 1 är mindre-eller-likamed num.

Hur ska jag ha det istället då?

Permalänk
Medlem
Skrivet av kempes:

Hur ska jag ha det istället då?

Om du startar med num = 2 och lägger till 1 vid varje varv så kommer 1 <= num alltid vara sant, dvs loopen tar aldrig slut (sanning med modifikation då num kommer slå runt till ett negativt tal när du passerar 2147483647).

Vad du antagligen vill göra är att loopa mellan 2 och talet du testar (eller hellre kvadratroten som någon nämnde tidigare)

En annan grej är att du sparar det inskrivna talet i just "num". Eftersom du i loopen sätter den till 2 går detta värde förlorat.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Om du startar med num = 2 och lägger till 1 vid varje varv så kommer 1 <= num alltid vara sant, dvs loopen tar aldrig slut (sanning med modifikation då num kommer slå runt till ett negativt tal när du passerar 2147483647).

Vad du antagligen vill göra är att loopa mellan 2 och talet du testar (eller hellre kvadratroten som någon nämnde tidigare)

En annan grej är att du sparar det inskrivna talet i just "num". Eftersom du i loopen sätter den till 2 går detta värde förlorat.

Hur skulle den for-loopen se ut? Vet du inte jag ska skriva att den ska ta roten ur det talet och sen dela med 1-roten av talet som testats.

Vet att man tar Math.Sqrt för att räkna ur roten ur talet.

Permalänk
Medlem
Skrivet av kempes:

Hur skulle den for-loopen se ut? Vet du inte jag ska skriva att den ska ta roten ur det talet och sen dela med 1-roten av talet som testats.

Vet att man tar Math.Sqrt för att räkna ur roten ur talet.

Syntax för for-loops ser ut så här: for (<initialiserare>; <villkor>; <instruktion(er)>)

  • <initialiserare> låter dig skapa variabler som används inuti for-loopen, så det finns ingen mening med att återanvända en tidigare skapad variabel.

  • <villkor> är vad som bestämmer om loopen ska fortsätta. Loopen pågår så länge detta uttryck är sant

  • <instruktion(er)> är en eller flera kommaseparerade instruktioner som utförs innan loopen börjar om.

För att loopa från 2 upp till (men inte med) num kan man skriva for (int i=2; i<num; i++)

Du kan säkert lista ut hur man loopar mellan talet 2 och kvadratroten av num

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Syntax för for-loops ser ut så här: for (<initialiserare>; <villkor>; <instruktion(er)>)

  • <initialiserare> låter dig skapa variabler som används inuti for-loopen, så det finns ingen mening med att återanvända en tidigare skapad variabel.

  • <villkor> är vad som bestämmer om loopen ska fortsätta. Loopen pågår så länge detta uttryck är sant

  • <instruktion(er)> är en eller flera kommaseparerade instruktioner som utförs innan loopen börjar om.

För att loopa från 2 upp till (men inte med) num kan man skriva for (int i=2; i<num; i++)

Du kan säkert lista ut hur man loopar mellan talet 2 och kvadratroten av num

Borde inte detta funka nu?

for (i = 1; i < num; num++) { for (i = 2; i < Math.Sqrt(num); i++) { tmp = i % num; if (tmp == 0) { break; } else { Console.WriteLine(num); }

Det som händer i consolen nu är att den skriver upp massor med nummer ända tills jag stoppar den.

Permalänk
Festpilot 2020, Antiallo
Skrivet av bellasoda:

Om du ska kontrollera ifall talet 3400 är ett primtal, så behöver du kontrollera om det är delbart med ett annat tal. Du behöver inte dela med alla talen mellan 1-3399, utan det räcker med att dela med talen 1 till rot(3400), dvs alla tal upp till 58 (vilket ungefär är roten ur 3400). Men det behöver du likväl göra. Som ett litet tips på vägen från en som har suttit med samma skoluppgift.

Skrivet av kempes:

Hur skulle den for-loopen se ut? Vet du inte jag ska skriva att den ska ta roten ur det talet och sen dela med 1-roten av talet som testats.

Vet att man tar Math.Sqrt för att räkna ur roten ur talet.

Räcker väl ändå med att kontrollera med alla underliggande primtal till talet man ska undersöka?
Rent matematiskt är det simplare, Programmeringsmässigt rör det nog till

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin

Permalänk
Medlem
Skrivet av kempes:

Borde inte detta funka nu?

for (i = 1; i < num; num++) { for (i = 2; i < Math.Sqrt(num); i++) { tmp = i % num; if (tmp == 0) { break; } else { Console.WriteLine(num); }

Det som händer i consolen nu är att den skriver upp massor med nummer ända tills jag stoppar den.

Du behöver två variabler för dina for-loopar; namnet "i" är samma variabel i den yttre loopen som i den inre. Detta hade varit mycket tydligare om du hade deklarerat variabeln på plats, dvs istället för att skriva for (i = 0 ... skriver du for (int i = 0....

Med andra ord skriver den inre loopen över den yttre loopens i just nu.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Du behöver två variabler för dina for-loopar; namnet "i" är samma variabel i den yttre loopen som i den inre. Detta hade varit mycket tydligare om du hade deklarerat variabeln på plats, dvs istället för att skriva for (i = 0 ... skriver du for (int i = 0....

Med andra ord skriver den inre loopen över den yttre loopens i just nu.

Nu borde de inte skriva över varandra. Känns som att for-looparna är rätt nu, dock inte där jag ska använda %.

for (int i1 = 1; i1 < num; num++) { for (int i2 = 2; i2 > Math.Sqrt(num); i2++) { tmp = i1 % num; if (tmp == 0) { break; } else { Console.WriteLine(num); }

Permalänk
Skrivet av DavidtheDoom:

Räcker väl ändå med att kontrollera med alla underliggande primtal till talet man ska undersöka?
Rent matematiskt är det simplare, Programmeringsmässigt rör det nog till

Bra idé, men inte nödvändigtvis rätt. Ta talet 10 t ex, hur många primtal finns under 10? 2,3,5,7: 4 st primtal och roten ur tio~3. Min metod behöver 2 tal (2,3) att testa med, din metod behöver 4 tal. Däremot är det meningslöst att prova att dela med ett tal som är större än roten ur. I ditt fall hade man provat med talet 5, men eftersom 10/5 = 2 och man redan provat med talet 2 så har man provat onödigt många gånger. En kombination av de två metoderna däremot, då börjar det likna något.

Visa signatur

CPU: AMD FX-8350 @ 4.7GHz | RAM: 32GB Vengeance @1600MHz | GPU: Asus HD7970 DCII Top @ 1.0/5.6 GHz | ASRock 990FX Fatal1ty | PSU: Newton R3 800W Platinum | HD: 128 GB Plextor M3 Pro, 300 GB WD Green | triple-boot: Win7-64,WinXP-32,debian-64

Permalänk
Festpilot 2020, Antiallo
Skrivet av bellasoda:

Bra idé, men inte nödvändigtvis rätt. Ta talet 10 t ex, hur många primtal finns under 10? 2,3,5,7: 4 st primtal och roten ur tio~3. Min metod behöver 2 tal (2,3) att testa med, din metod behöver 4 tal. Däremot är det meningslöst att prova att dela med ett tal som är större än roten ur. I ditt fall hade man provat med talet 5, men eftersom 10/5 = 2 och man redan provat med talet 2 så har man provat onödigt många gånger. En kombination av de två metoderna däremot, då börjar det likna något.

True
Hur blir det med ett större primtal?

23 - : 2,3,5,7,11,13,17,19

Antar att vi kan nöja oss med alla tal
x =>Sqr.Root av talet.
(Är talet = Sqr.Root så är det inget primtal ofcourse)

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin

Permalänk
Medlem
Skrivet av kempes:

Nu borde de inte skriva över varandra. Känns som att for-looparna är rätt nu, dock inte där jag ska använda %.

for (int i1 = 1; i1 < num; num++) { for (int i2 = 2; i2 > Math.Sqrt(num); i2++) { tmp = i1 % num; if (tmp == 0) { break; } else { Console.WriteLine(num); }

Andra for-loopen har fortfarande fel i loop-villkoret. Det står nu: loopa så länge i2 är större än kvadratroten av num.

Tänk också på att num bara representerar det sista talet du vill testa: din yttre loop är tänkt att representera mängden 1 till num

ps: du är nära nu.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Andra for-loopen har fortfarande fel i loop-villkoret. Det står nu: loopa så länge i2 är större än kvadratroten av num.

Tänk också på att num bara representerar det sista talet du vill testa: din yttre loop är tänkt att representera mängden 1 till num

ps: du är nära nu.

Nu har jag ändrat i andra for-loopen, nu borde villkoret stämma, loopa så länge i2 är mindre än kvadratroten av num. Kan du ge ett exempel på vad du menar med:

Citat:

Tänk också på att num bara representerar det sista talet du vill testa: din yttre loop är tänkt att representera mängden 1 till num

for (int i1 = 1; i1 < num; num++) { for (int i2 = 2; i2 < Math.Sqrt(num); i2++) { tmp = i1 % num; if (tmp == 0) { break; } else { Console.WriteLine(num); } } }

Permalänk
Skrivet av kempes:

Nu har jag ändrat i andra for-loopen, nu borde villkoret stämma, loopa så länge i2 är mindre än kvadratroten av num. Kan du ge ett exempel på vad du menar med:

for (int i1 = 1; i1 < num; num++) { for (int i2 = 2; i2 < Math.Sqrt(num); i2++) { tmp = i1 % num; if (tmp == 0) { break; } else { Console.WriteLine(num); } } }

Fundera på var du ökar i1 i första for-loopen...

För övrigt brukar i, j användas om man har fler for-loopar, eller iaf två på varandra följande bokstäver.

Visa signatur

Phanteks P600S Grå - Ryzen 9 3900X - Phanteks PH-TC14PE Black - ASUS ROG Strix X570-F Gaming - G.Skill Trident Z Neo 32GB (2x16GB) 3600MHz CL16 - HD7970 - Seasonic Focus+ 650W Platinum