PAP für Primzahl



  • Schönen Guten Abend! 😉

    Ich bräuchte Hilfe bei einer Aufgabe...

    Formulieren Sie einen Algorithmus als Flussdiagramm (Programmablaufplan), der wiederholt eine
    ganze Zahl n einliest und alle möglichen Paare von positiven Zahlen auflistet, deren Produkt
    n ergibt und zusätzlich entscheiden, ob n eine Primzahl ist. Das Programm soll abbrechen, sobald
    eine Zahl  0 gelesen wurde oder bei einer ungültigen Eingabe (keine Zahl; informieren Sie
    sich in der man-Page zu scanf über die Bedeutung des Rückgabewertes). Schreiben Sie sodann
    ein C-Programm produkte.c, welches diesen Algorithmus implementiert. Die Ausgabe Ihres
    Programms soll sich an folgendem Beispiel orientieren:
    Zahl eingeben: 42
    1 * 42
    2 * 21
    3 * 14
    6 * 7
    7 * 6
    14 * 3
    21 * 2
    42 * 1
    42 ist keine Primzahl
    Zahl eingeben: 5
    1 * 5
    5 * 1
    5 ist eine Primzahl
    Zahl eingeben: x

    Muss ich nur ein PAP erstellen oder ein ganzes Programm? Wie kann ich da am besten rangehen?



  • Du brauchst zwei geschachtelte Schleifen - die äußere liest Zahlen ein und bricht bei einer falschen Eingabe ab, die innere prüft alle potentiellen Teiler der eingegebenen Zahl und gibt die gefundenen Teiler aus.



  • naja es heißt du sollst danach ein c Programm schreiben das diesen Algorithmus implementiert, also beides würde ich sagen.

    Zum Vorgehen:
    Naja fang einfach am Anfang an, und überlege dir was dein Prog der Reihe nach machen soll. Also einlesen -> Produkte finden (Wie findet man am einfachsten alle Produkte)...

    Die Randbedingungen: mehrmals hintereinander einlesen, Fehlerfall etc. würde ich danach außenrum bauen.



  • #include <stdio.h>
    
    int main() 
    {
    	for (;;) 
    	{
    		int zahl;
    
    		printf("Zahl eingeben: ");
    
    		if (scanf("%d", &zahl) <= 0 || zahl == 0) 
    			break;
    
    		// TODO: Berechnung
    		printf("TODO: Berechnung\n");
    	}
    
    	return 0;
    }
    


  • Noch ein Tipp: Du kannst die Überprüfung auf eine Primzahl dann auch ganz einfach lösen. Da du ja ohnehin alle Teiler suchst kannst du dabei einfach die Anzahl der Teiler mitzählen. Damit kannst du dann sagen, ob es sich um eine Primzahl handelt oder nicht.


Anmelden zum Antworten