C-Rekursive Funktion für prime-Reihe mit nur einem parameter

Im Versuch, um eine Funktion zu überprüfen, ob eine Zahl Primzahl ist oder nicht, mit Rekursion. Die zwei besten Beispiele sind diese beiden Programme (ohne Rekursion, die man mit Rekursion).

Mit Rekursion:

    #include<stdio.h>

int isPrime(int,int);

int main(){

    int num,prime;

    printf("Enter a positive number: ");
    scanf("%d",&num);

    prime = isPrime(num,num/2);

   if(prime==1)
        printf("%d is a prime number",num);
   else
      printf("%d is not a prime number",num);

   return 0;
}

int isPrime(int num,int i){

    if(i==1){
        return 1;
    }else{
       if(num%i==0)
         return 0;
       else
         isPrime(num,i-1);
    }
}

Ohne Verwendung von Rekursion:

     #include<stdio.h>

int isPrime(int);

int main(){

    int num,prime;

    printf("Enter a positive number: ");
    scanf("%d",&num);

    prime = isPrime(num);

   if(prime==1)
        printf("%d is a prime number",num);
   else
      printf("%d is not a prime number",num);

   return 0;
}

int isPrime(int num){

    int i=2;

    while(i<=num/2){
         if(num%i==0)
             return 0;
         else
             i++;
    }

    return 1;
}

Meine Frage ist: Ist es möglich, eine Funktion, um zu überprüfen, ob eine Zahl Primzahl ist oder nicht, mit Rekursion, aber mit nur einem parameter (wie z.B.: int isPrime(int num))?

Jede Hilfe ist willkommen

Nest Ihre zwei-parameter-Funktion aus einer äußeren ein-parameter-Funktion.

InformationsquelleAutor Rui Moreira | 2014-11-07

Schreibe einen Kommentar