NemBen Posted Január 24, 2008 Share Posted Január 24, 2008 Üdv kedves Pirate-lakók! Tegnap összedobtam egy igen egyszerű programot arra, hogy eldöntse egy adott számról hogy az prímszám-e vagy sem. Ez a legelső programom Pascalban úgyhogy nem feltétlenül szép, de mindenesetre működik Az alapkód: program prim; uses CRT; var p,i: longint; begin clrscr; Writeln('Add meg a vizsgalni kivant szamot!'); Read(p); i:=1; repeat i:=i+1; until (p mod i=0); if i=p then writeln(p,' primszam!') else writeln(p,' nem prim, mert ',i,' osztja!'); readkey; end. Persze ez csak az 1.0-s verzió, de már doldozok a javításán Lényegében azt csinálja, hogy elkezdi nézni 2-től a számokat és amint talál olyan számot ami osztja a megadott p számot (ez ugye legfeljebb p), akkor kétféle dolgot ír ki: -ha a talált osztó (i) megegyezik p-vel akkor a vizsgált szám prímszám, -ha a talált osztó (i) kisebb mint p akkor a vizsgált szám nem prímszám. Hasznos lehet, ha nagyobb számokról akajátok eldönteni hogy prímszám-e vagy sem Beraktam mellékletnek a progi. Használjátok egészséggel! prim.zip Idézés Link to comment Share on other sites More sharing options...
spdeluxe Posted Január 24, 2008 Share Posted Január 24, 2008 Ügyes progi,csak kár hogy minden eredményhirdetés után bezáródik. Idézés Link to comment Share on other sites More sharing options...
NemBen Posted Január 24, 2008 Author Share Posted Január 24, 2008 Már az 1.5nél tartok az már 'kicsit' többet tud Pl a nemprímeket felbontja, nem záródik be hanem felajánlja az új vizsgálatot stb.. Csak még azt akarom megoldani, hogy ne úgy írja az osztókat hogy 2*2*2*2*2*3*3*4 hanem ehelyett azt írja, hogy 2^5*3^2*4 Idézés Link to comment Share on other sites More sharing options...
Markeee Posted Január 24, 2008 Share Posted Január 24, 2008 A bezáródást azt lehet a legkönnyebben megoldani. A program eleján megkérded az emberkét, hogy hányszor akar tudakodni és az egész programod egy ciklusban fog lefutni. -megkérded, beolvasod -ciklus addig amig a beolvasott szám ciklusban a Begin-End. között lévő rész Idézés Link to comment Share on other sites More sharing options...
NemBen Posted Január 24, 2008 Author Share Posted Január 24, 2008 Goto paranccsal oldottam meg a bezáródást Így gyakorlatilag akárhányszor végig lehet vinni. Az 1.5 kódja: program bonto; uses CRT; label kezdet, veg; var p,i: longint; var e:char; begin KEZDET: clrscr; Writeln('Add meg a vizsgalni kivant szamot!'); Read(p); if p<=1 then writeln; if p<=1 then writeln('Az 1-et es nala kisebb szamokat nem lehet felbontani. Nyomj ENTER-t es valassz masik szamot!'); if p<=1 then readkey; if p<=1 then goto kezdet; i:=1; clrscr; repeat i:=i+1; until (p mod i=0); if i=p then writeln(p,' primszam!'); if i=p then goto veg else i:=1; write(p,'='); repeat repeat i:=i+1; until (p mod i=0); write(i); p:=(p div i); if p>1 then write('*'); i:=1; until p=1; veg: Writeln; Writeln; Writeln('Uj vizsgalathoz nyomj 1-et, befejezeshez barmely mas billentyut!'); e:=readkey; if e='1' then goto KEZDET else end. Eddig ugye ha 1-et vagy nála kisebb számot írtál be akkor a program gyakorlatilag lefagyott, ezért beépítettem egy kis védelmet ellene, továbbá most már bontja is a számokat BONTO15.zip Idézés Link to comment Share on other sites More sharing options...
Markeee Posted Január 24, 2008 Share Posted Január 24, 2008 GOTO-t ne használj! Az a programnyelvek sötét oldala by sarki_roka aNagyon átláthatatlanná tesz 15 GOTO egy programot. (tapasztalat) És meg lehet oldani iteratívan mindent GOTO nélkül. Idézés Link to comment Share on other sites More sharing options...
seekoly Posted Január 28, 2008 Share Posted Január 28, 2008 Csináljunk versenyt! Az én programom pl. az első 10.000.000 természetes számból, 664.580 db. prímszámot talál 2.6 másodperc alatt! Egyetlen hibája, hogy ehhez ~38 Mb-nyi memóriára van szüksége... prim.zip Idézés Link to comment Share on other sites More sharing options...
a.k.47 Posted Február 2, 2008 Share Posted Február 2, 2008 Nemrég ugyanezt csináltuk infón. Idézés Link to comment Share on other sites More sharing options...
Pörköltszaft Posted Február 25, 2008 Share Posted Február 25, 2008 seekoly, csak kár hogy ez egy PASCAL topic... Idézés Link to comment Share on other sites More sharing options...
geldy Posted Augusztus 12, 2009 Share Posted Augusztus 12, 2009 A barbár C-s progit rak be! Látom az ékezeteket se sikerült megoldani, am még hasznos lehet... Idézés Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.