Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class Primzahlen
- {
- private Scanner sc = new Scanner(System.in);
- private int[] zahlen;
- private int[] prim;
- public Primzahlen ()
- {
- primzahlenherausfinden();
- }
- private void fuellen(){
- for (int i=0;i<zahlen.length;i++){
- zahlen[i] = i+2;
- }
- }
- private void delvielfache(){
- for (int i=0;i<zahlen.length;i++){
- if (zahlen[i]!=0){
- int maxvf=(zahlen.length+1)/(i+2);
- if ( maxvf<2) {
- System.out.println("Es gibt keine Vielfachen von "+(i+2)+".");
- } else {
- System.out.print("Die Vielfachen von "+(i+2)+" werden aussortiert: ");
- for (int j=2;j<=maxvf;j++){
- zahlen[((i+2)*j)-2]=0;
- System.out.print(((i+2)*j)+", ");
- }
- System.out.println();
- }
- } else {
- System.out.println(""+(i+2)+" wurde bereits aussortiert.");
- }
- try {
- Thread.sleep(350);
- } catch (InterruptedException e) {}
- }
- }
- private void findprim(){
- int primlaenge = 0;
- for(int i=0;i<zahlen.length;i++){
- if (zahlen[i]!=0){
- primlaenge++;
- if (primlaenge==1){
- System.out.println(""+(i+2)+" ist eine Primzahl, damit ist es "+primlaenge+" Primzahl.");
- } else {
- System.out.println(""+(i+2)+" ist eine Primzahl, damit sind es "+primlaenge+" Primzahlen.");
- }
- } else {
- System.out.println(""+(i+2)+" ist keine Primzahl.");
- }
- try {
- Thread.sleep(350);
- } catch (InterruptedException e) {}
- }
- prim = new int[primlaenge];
- }
- private void saveprim(){
- int saveindex=0;
- for(int i=0;i<zahlen.length;i++){
- if (zahlen[i]!=0){
- prim[saveindex]=zahlen[i];
- saveindex++;
- }
- }
- }
- private void printprim(){
- System.out.println("Die Primzahlen zwischen 1 und einschließlich "+(zahlen.length+1)+" lauten: ");
- for (int i=0; i<prim.length; i++) {
- System.out.print(""+prim[i]+", ");
- }
- System.out.println();
- System.out.println("Es sind also "+prim.length+" Primzahlen.");
- }
- public void primzahlenherausfinden(){
- System.out.print("\fBitte gib das obere Ende des nach Primzahlen zu durchsuchenden Bereichs an: ");
- int zahl=0;
- while (zahl <2) {
- for (int h=0;h==0;h++) {
- //Versuch, die Eingabe in Form eines Strings zu einer double zu konvertieren
- try {
- zahl = Integer.parseInt(sc.nextLine());
- } catch (java.lang.NumberFormatException e) {
- //Gibt den Fehler aus und lässt die Schleife wiederholen
- System.out.println("Eingabe eines gültigen Zahlenwertes erforderlich");
- h--;
- }
- }
- }
- zahlen = new int[zahl-1];
- System.out.println("Es werden nun alle Primzahlen zwischen 1 und einschließlich "+zahl+" gesucht.");
- System.out.println();
- fuellen();
- System.out.println("Einzelne Zahlen ausgeben: ");
- if(sc.nextLine()=="Y"){
- delvielfache();
- }
- System.out.println();
- findprim();
- saveprim();
- System.out.println();
- printprim();
- }
- public static void main(String[] args) {
- new Primzahlen();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement