trexterMedlem sedan mars 20021 889 inlägg Jag skulle göra ett program, som kollar om ett tal är prim, på min nyinförskaffade Ti-83. Prog. visar alltid "ja", oavsett värde på p.
Disp "skriv tal"
input (p)
for(i,2,p-1)
if p/i=round(p/i)
then
disp "ja"
stop
end
end
disp "nej"
Förutom att få koden att fungera är även förslag på smarta lösningar uppskattade. ;)
var det inte
Input "Skriv här:",P
typ ? minns inte så mycket eller Promt "Skriv:här",P
trexterMedlem sedan mars 20021 889 inlägg Jag tror att syntaxen input(p) är riktig och även om den inte skullle vara det borde jag väl få något fel när jag kör koden.
Nexus86Medlem sedan okt. 20023 030 inlägg Du behöver inte köra for-loopen från 2 till p-1, det räcker gott och väl med 2 till 5. T.ex.
Talet 15: Delbart med 2, nej. Delbart med 3, ja. Alltså inget primtal.
Talet 23: Delbart med 2, nej. Delbart med 3, nej. Delbart med 4, nej. Delbart med 5, nej. Alltså ett primtal.
PeeerMedlem sedan mars 20025 907 inlägg
Nexus86 skrev:
Du behöver inte köra for-loopen från 2 till p-1, det räcker gott och väl med 2 till 5. T.ex.
Talet 15: Delbart med 2, nej. Delbart med 3, ja. Alltså inget primtal.
Talet 23: Delbart med 2, nej. Delbart med 3, nej. Delbart med 4, nej. Delbart med 5, nej. Alltså ett primtal.
Fel!
Ta talet 49 (7*7) som ex. Det går inte att dela med varken 2,3,4 eller 5. Men inte är det ett primtal för det.
Däremot räcker det att kolla mellan 2 och sqrt(p).
trexterMedlem sedan mars 20021 889 inlägg
Peeer skrev:
Nexus86 skrev:
Du behöver inte köra for-loopen från 2 till p-1, det räcker gott och väl med 2 till 5. T.ex.
Talet 15: Delbart med 2, nej. Delbart med 3, ja. Alltså inget primtal.
Talet 23: Delbart med 2, nej. Delbart med 3, nej. Delbart med 4, nej. Delbart med 5, nej. Alltså ett primtal.
Fel!
Ta talet 49 (7*7) som ex. Det går inte att dela med varken 2,3,4 eller 5. Men inte är det ett primtal för det.
Däremot räcker det att kolla mellan 2 och sqrt(p).
Det är riktigt, vilket framgår om man stryker alla multipler.
Tack för alll hjälp!
bohlinMedlem sedan mars 2000263 inlägg ändra
if p/i=round(p/i)
till
if p/i=round(p/i,0)
så funkar det kanske
,0 betyder 0 decimaler