Seite 1 von 1

primzahlen

Verfasst: 15. Nov 2009, 14:19
von lolo86
huhu, ich muss mit einem programm testen (in C) ob eine zahl eine primzahl ist. :?
kann mir da jmd helfen? hat vll jmd davon ein quelltext?
vielen dank für die hilfe :)

Re: primzahlen

Verfasst: 15. Nov 2009, 14:24
von Avalon
Es gibt sicher schon fast soviele Programme und Internetseiten dazu, wie Primzahlen, nutz mal Google oder erkläre, warum du damit nicht fündig geworden bist.

Re: primzahlen

Verfasst: 15. Nov 2009, 14:26
von lolo86
ich finde aber leider keinen quelltext für c...immer nur java oder c++

Re: primzahlen

Verfasst: 15. Nov 2009, 14:37
von kaot
dann passt man die syntax an (C dokumentation suchen), ggf c und java/c++ dokumentation suchen) und korrigieren ;)

Re: primzahlen

Verfasst: 15. Nov 2009, 14:54
von lolo86
oh weia, ich seh einfach nich durch :S

so sieht die aufgabenstellung aus..
Der folgende Algorithmus beschreibt ein Verfahren, das feststellt, ob eine natürliche Zahl m eine
Primzahl ist. Für den Primzahltest gilt:
m ist prim genau dann, wenn m >1 und kein Teiler t von m mit 1<t und t<m existiert, wobei m und t
natürliche Zahlen sind.
Der Ausdruck m%t berechnet den Rest, der bei der ganzzahligen Division von m durch t entsteht.

Implementieren Sie den Algorithmus als C-Funktion. Dafür ist die in der Datei prim.h definierte
Funktion isPrim zu implementieren. Die Funktion erwartet als Parameter eine natürliche Zahl m und
gibt das Ergebnis 1, falls m eine Primzahl ist, oder das Ergebnis 0, falls m keine Primzahl ist, zurück.

Re: primzahlen

Verfasst: 15. Nov 2009, 15:30
von Brio
Ich habe selber erst vor ca. 2Wochen wirklich mit C++ angefangen, aber die Aufgabe hat mich gereizt;) Ist leider eben C++ (ich weiß nicht inwiefern du für C was abändern musst) und die Funktion ist eben nicht in einer eigenen Datei hinterlegt, da ich mich da auch noch nicht genauer auskenn, wie man das macht, aber als HIlfe sollte der folgende Code schonmal dienen:

Code: Alles auswählen

#include <iostream>
using namespace std;

int isPrim(int);

int main () {
    int zahl;
    cout<<"Bitte gebe eine zu prüfende Zahl ein: ";
    cin>>zahl;
    if(isPrim(zahl)==1) {
                        cout<<"\nDie Zahl ist eine Primzahl";
                        }
    else {
         cout<<"\nDie Zahl ist keine Primzahl";
         }
    while(1); 
}

int isPrim(int m) {
    bool prim = 1;//es wird zu Beginn angenommen, dass die Zahl EINE Primzahl ist
    if(m > 1) {
            for(int t=2;t<m;t=t+1) {//Schleifendurchlauf um Zahl auf alle moeglichen Teiler zu pruefen
                    if(m%t==0) {//wird diese Bedingung erfuellt, ist die Zahl KEINE Primzahl
                               prim = 0;
                               }
                    }
            }
    else {
         return 2; //oder sonstige andere Ausgabe, einfach zur Benachrichtigung, dass eine falsche Zahl eingegeben wurde...
         }
    return prim;
}
und da ich so nett bin, hab ich mich noch 10min länger hingesetzt, 2 Internetseiten angeschaut und das ganze umgeschrieben, damits in C funzt:

Code: Alles auswählen

#include <stdio.h>

int isPrim(int);

main () {
    int zahl;
    printf("Bitte gebe eine zu prüfende Zahl ein: ");
    scanf("%d",&zahl); 
    if(isPrim(zahl)==1) {
                        printf("\nDie Zahl ist eine Primzahl");
                        }
    else {
         printf("\nDie Zahl ist keine Primzahl");
         }
    while(1); 
}

int isPrim(int m) {
    int prim = 1;//es wird zu Beginn angenommen, dass die Zahl EINE Primzahl ist
    if(m > 1) {
            int t;
            for(t=2;t<m;t=t+1) {//Schleifendurchlauf um Zahl auf alle moeglichen Teiler zu pruefen
                    if(m%t==0) {//wird diese Bedingung erfuellt, ist die Zahl KEINE Primzahl
                               prim = 0;
                               }
                    }
            }
    else {
         return 2; //oder sonstige andere Ausgabe, einfach zur Benachrichtigung, dass eine falsche Zahl eingegeben wurde...
         }
    return prim;
}
Es kann natürlich sein (und ist ziemlich sicher so), dass man an dem Code noch einiges schöner machen kann, dass kannst du ja dann aber machen:)
mfg brio

Re: primzahlen

Verfasst: 15. Nov 2009, 15:58
von lolo86
ich danke dir brio :)
ganz lieben dank!!!!!