C :: Aufgabe #46 :: Lösung #2

2 Lösungen Lösungen öffentlich
#46

Alle Primzahlen bis zu einem Maximalwert ermitteln

Anfänger - C von devnull - 26.02.2014 um 18:36 Uhr
Es soll ein Programm geschrieben werden, welches alle Primzahlen im Bereich von 2 bis zu einem Maximalwert sucht und auf der Konsole ausgibt.
Den Maximalwert soll der Benutzer beim Programmaufruf auf der Kommandozeile angeben können.
Der Algorithmus zur Primzahlensuche ist frei wählbar.
#2
vote_ok
von kathleenw (3600 Punkte) - 01.07.2020 um 09:05 Uhr
Quellcode ausblenden C-Code
#include <stdio.h>
#include <stdbool.h>

bool istPrim(int zahl);

int main(void)
{
    int obere_grenze, i, anzahl;
    
    anzahl = 0;
    
    printf("Bis zu welchen Maximalwert sollen Primzahlen geuscht werden?: ");
    scanf("%d", &obere_grenze);
    
    for (i=2;i<=obere_grenze;i++){
        if (istPrim(i)==true) {
            printf("%d ",i);
            anzahl++;
        }
    }
    
    printf("\nVon 2 bis %d gibt es %d Primzahlen. \n", obere_grenze,anzahl);
        
}


//prüfen ob es eine Primzahl ist
bool istPrim(int zahl) {
    bool prim, faktorgefunden;
    int t;
    
    if (zahl <= 2) {
        if (zahl < 2)
            prim = false;
        else
            prim = true;
    }
    else {
        if (zahl%2 == 0)
            faktorgefunden = true;
        else {
            faktorgefunden = false;
            t = 3;
            while (t*t <= zahl && faktorgefunden == false) {
                if (zahl % t == 0)
                    faktorgefunden = true;
                else
                    t=t+2;
            }
        }
    }
    
    if (faktorgefunden==false)
        prim = true;
    else
        prim = false;
    
    return prim;
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben