Anzahl der Teiler

LikeManuel

Mitglied
Hallo 🙂
Ich habe ein Problem mit meiner Programmier Hausaufgabe, und zwar handelt es sich um die Bestimmung der Anzahl der Teiler von allen 3 stelligen Zahlen.
Hab schon einen Ansatz aber wo könnten Fehler sein ?
Code:
int zahl=100;
        int count=0;
        int count2=0;
        int countaus=0;
     
        System.out.println("Zahl:"+"\t"+"Anzahl der Teiler:");
     
        while(zahl>99 && zahl<1000){
            zahl=zahl+1;
            System.out.println(zahl);
         
            while(count>=2 && count<100){
            count=count+1;        
         
            if(zahl%count2==0){
            countaus=countaus+1;
            System.out.print("   "+countaus);
            }                
            }        
        }
 
Hab schon einen Ansatz aber wo könnten Fehler sein ?
Mir sind folgende aufgefallen:
Die innere while-Schleife wird nie betreten, weil count dafür größer oder gleich zwei sein müßte. count ist aber 0.
zahl%count2==0würde eine Exception werfen, weil man nicht durch Null dividieren darf. count2 ist aber 0.
count läuft nur bis maximal 100. Die Zahlen über 100 haben aber auch Teiler, die größer als 100 sind.
count und countaus werden nicht wieder zurück gesetzt, wenn die Teiler der nächsten Zahl ermittelt werden sollen.
countaus wird an der falschen Stelle ausgegeben.
Es wird der Zahlenbereich von 101 bis 1000 gezählt. Es soll aber von 100 bis 999 gezählt werden.
 
Für 100 müsstest du nach dieser Definition zählen, wieviele Teiler es im Bereich von 2 bis 99 gibt. Aktuell würde dein Programm aber den Bereich von 3 bis 100 prüfen, wenn die innere Schleife betreten werden würde (was ja nicht geschieht).
An den bereits genannten Fehlern ändert sich durch die neue Info meines Erachtens nichts.
 
Java:
 public static void main(String[] args) {
        int sum = 0;
        for (int i = 100; i < 1000; i++){
            for (int j = 2; j < i ; j++) {
                if (i % j == 0)
                    sum ++;

            }

            System.out.println("Anzahl der Teiler"+ i+" = " + sum);
            sum = 0 ;
        }
    }
Hier mit zwei for-Schleifen!
 
Java:
        int zahl=100;
        int count=2;
        int countaus=0;
      

        while(zahl>99 && zahl<1000){
          
            while(count<zahl){

                if(zahl%count==0){
                    countaus++;

                }
                count++;
            }
            System.out.println("Zahl "+zahl+" hat "+countaus+" Teiler!");
            zahl++;
            count = 2;
            countaus = 0;
        }
Vielleicht versuchst du erst mal anhand der for-Variante es auf while um zu setzen
 

Neue Themen


Zurück
Oben