home *** CD-ROM | disk | FTP | other *** search
/ M.u.C.S. Disc 2000 / MUCS2000.iso / sigisoft / primzahl / primzahl.bas < prev    next >
Encoding:
BASIC Source File  |  1997-10-09  |  2.8 KB  |  112 lines

  1. 10 'Primzahlenberechnung
  2. 20 'Verfahren: Sieb des Eratosthenes
  3. 30 :
  4. 40 'von S. HÜbner
  5. 50 :
  6. 100 REM
  7. 110 DIM A(1000)
  8. 120 CLS:GOSUB 480
  9. 130 IF WAHL =4 THEN GOTO 1000
  10. 140 IF WAHL = 5 THEN GOTO 410
  11. 150 LOCATE 16,2
  12. 160 INPUT"Bitte Obergrenze eingeben : ",NMAX
  13. 170 PRINT"  "
  14. 180 A(1) = 2
  15. 190 A(2) = 3
  16. 200 ZAEHLER = 2
  17. 210 IF WAHL = 4 THEN GOTO 1000
  18. 220 :
  19. 230 REM ********************************************
  20. 240 REM SCHLEIFE ZUR BERECHNUNG DER PRIMZAHLEN
  21. 250 FOR N = 5 TO NMAX STEP 2
  22. 260   PRIM = 0
  23. 270   I = 2
  24. 280   WHILE (I < ZAEHLER) AND (A(I) < SQR(N)) AND (PRIM = 0)
  25. 290     HILF = (N MOD I)
  26. 300     IF HILF = 0 THEN PRIM = 1
  27. 310     I = I + 1
  28. 320   WEND
  29. 330   IF PRIM = 0 THEN GOSUB 430
  30. 340 NEXT N
  31. 350 :
  32. 360 ON WAHL GOSUB 690,800,890
  33. 370 :
  34. 380 PRINT
  35. 390 PRINT"weiter mit RETURN... ";
  36. 395 LINE INPUT DUMMY$
  37. 400 GOTO 120
  38. 410 PRINT
  39. 420 END
  40. 430 ZAEHLER = ZAEHLER + 1
  41. 440 A(ZAEHLER) = N
  42. 450 RETURN
  43. 460 :
  44. 470 REM ********************************
  45. 480 REM Menue
  46. 490   REM
  47. 500   LOCATE 1,30
  48. 510   PRINT"   PRIMZAHL"
  49. 520   LOCATE 2,30
  50. 530   PRINT"   ********"
  51. 531   LOCATE 20,3,:PRINT" PD Version 1.0 by Siegfried Hübner, Obere Vorstadt 21, 8812 Windsbach"
  52. 540   LOCATE 4,10
  53. 550   PRINT"Nur berechnen :               1"
  54. 560   LOCATE 6,10
  55. 570   PRINT"Mit Ausgabe auf Drucker :     2"
  56. 580   LOCATE 8,10
  57. 590   PRINT"Speichern :                   3"
  58. 600   LOCATE 10,10
  59. 610   PRINT"Einlesen und ausgeben :       4"
  60. 620   LOCATE 12,10
  61. 630   PRINT"Ende :                        5"
  62. 640   LOCATE 14,2
  63. 650   INPUT"Ihre Wahl : ",WAHL
  64. 651   locate 20,3:print string$(70,32)
  65. 660 RETURN
  66. 670 :
  67. 680 REM ************************************
  68. 690 REM Ausgabe auf Monitor
  69. 700 PRINT" I            P(I)"
  70. 710 PRINT"  "
  71. 720   FOR I = 1 TO ZAEHLER STEP 1
  72. 730   U$ = "####         #####"
  73. 740   PRINT USING U$;I,A(I)
  74. 750   IF (I MOD 20) = 0 THEN PRINT"Weiter mit RETURN ... ";:LINE INPUT DUMMY$
  75. 760 NEXT I
  76. 770 RETURN
  77. 780 :
  78. 790 REM **************************************
  79. 800 REM Ausgabe auf dem Drucker
  80. 810 LPRINT " I            P(I)"
  81. 820 LPRINT"-------------------------"
  82. 830 FOR I = 1 TO ZAEHLER STEP 1
  83. 840   LPRINT I,A(I)
  84. 850 NEXT I
  85. 860 RETURN
  86. 870 :
  87. 880 REM ***************************************
  88. 890 REM Speichern auf Datenträger
  89. 900 PRINT"  "
  90. 910 INPUT"Bitte Laufwerk, Pfad und Dateiname eingeben :",PFAD$
  91. 920 OPEN "O",#1,PFAD$
  92. 930 FOR I = 1 TO ZAEHLER STEP 1
  93. 940   WRITE #1,A(I)
  94. 950 NEXT I
  95. 960 CLOSE #1
  96. 970 RETURN
  97. 980 :
  98. 990 REM *****************************************
  99. 1000 REM Lesen von Datenträger
  100. 1010 PRINT"  "
  101. 1020 INPUT"Bitte Laufwerk, Pfad und Dateiname eingeben : ",PFAD$
  102. 1030 ZAEHLER = 0
  103. 1040 I = 1
  104. 1050 OPEN "I",#1,PFAD$
  105. 1060 WHILE NOT EOF(1)
  106. 1070   INPUT #1,A(I)
  107. 1080   I = I + 1
  108. 1090   ZAEHLER = ZAEHLER + 1
  109. 1100 WEND
  110. 1110 GOSUB 690
  111. 1120 GOTO 120
  112.