text: # Thread: is my work correct?...simple function
  
  1. ## is my work correct?...simple function
  
  a recursive function int fibo(int n) that returns the nth fibonacci number.
  
  i dont really quite get this..so here goes
  
  Code:
  ```int fibo (int n)
  {
  
  return fibo(n-1) + fibo(n-2);
  
  }```
  
  2. You need a simple case to stop the recursion.
  Like
  if ( n <= 1 ) return n;
  
  3. You need something like this:
  Code:
  ```if (n <= 1)
  {
  return 1;
  }```
  If you want to stop it at the logical point. Thus the function would be written as this:
  Code:
  ```int fibo(int n)
  {
  if (n <= 1)
  {
  return 1;
  }
  return fibo(n-1) + fibo(n-2);
  }```
  Also, keep in mind that this is zero based, thus fibo(5) returns 8, not 5.
  
  4. thanks guys...i understand now
  
  but need to check if my last code is correct..pls read first
  
  1.function int isPrime(int n ) that returns 1 if n is a prime and 0 otherwise.
  
  done this already but if needs any corrections here it is:
  
  Code:
  ```int isPrime (int n)
  {
  
  if (n%2 != 0)
  
  return 1;
  
  else
  
  return 0;
  
  }```
  2. a recursive function int fibo (int n) that returns the nth fibonacci number
  
  done this already...thanks for the corrections!
  
  3. A function int isFiboPrime (int n) that checks whether the nth fibonacci number is a prime.
  This function must call the 1 & 2 functions
  
  so heres my code:
  
  Code:
  ```int isFiboPrime (int n)
  {
  
  if ( fibo(n) ! isPrime(n) )
  printf ("Not Prime");
  
  else
  
  printf ("Prime");
  
  }```
  is this correct?
  
  5. isPrime doesn't check for, say, division by three. You need to check for division probably up to half the number. For example, check if 21 is prime. Your function says it is, but if you check for three, you'll realize it's not. In code:
  Code:
  ```int isPrime (int n)
  {
  for (int i = 2; i <= (n/2); i++)
  {
  if (n%i == 0)
  {
  return 0;
  }
  }
  }```
  
  6. hmmm i see so it was only for division by 2...i didnt know that...thanks for the correction
  
  but how about my third function...is it correct?
  
  7. Try this:
  Code:
  ```int isFiboPrime (int n)
  {
  int temp = fibo(n);
  if (isPrime(temp) == 1)
  return 1;
  else
  return 0;
  }```
  edit: sorry, you wanted to printf:
  Code:
  ```void  isFiboPrime (int n)
  {
  int temp = fibo(n);
  if (isPrime(temp) == 1)
  printf ("Prime");
  else
  printf ("Not Prime");
  }```
  
  8. aaww..i didnt thought of this before...i guess i need more practice
  
  btw will my answer still works?...
  
  thanks for corrections
  
  EDIT: OT, a manchester united fan?...hehe im going for chelsea this season...
  
  9. I don't think so. It will check isPrime, but I don't think (I could be wrong) it would take into acount the fibo(n) call. Also, my method is clearer and makes for more readable code.
  
  10. ok thans...gonna check this out....
  
  thanks for the corrections...
  
  really thanks
  
  11. That's what we're here for!
  
  12. If no number from 2 to sqrt(n) can divide evenly into n, then n is prime.
  
  Code:
  ```for test = 2; test * test < n; ++test
  {
  if n divisible by test  /* not prime, return failure */
  }
  /* n passed all tests, return success */```
  
  13. I would like to make a small modification to the last post on calculating primes to improve its efficieny. Trying to divide n only by numbers between 2 to sqrt(n) reduces a lot of work, however we can reduce that too, by half if we skip all even numbers other than 2.
  
  Code:
  ```int isPrime (int n)
  {
  if (n == 2)
  return 1;
  if( n % 2 == 0)
  return 0;      // all even numbers except 2 are non primes
  
  for (int i = 3; i * i <n; i+=2 )      //check only with odd numbers less than sqrt(n)
  {
  if ( n % i == 0)
  return 0;
  }
  
  return 1;
  }```
explanation: This document is a discussion thread from a forum where users are discussing the implementation of a recursive Fibonacci function and a function to check if a number is prime. The thread also includes a function that checks if the nth Fibonacci number is prime. The discussion includes questions, answers, and code corrections.
distilabel_metadata.content: Evaluate the user given text extract and determine if it contains a math question and optionally and answer to this question.
  
  Output rules:
  
  1. Briefly describe the document and mention if it contains a question or a question and answer.
  2. Finalize the output with: Label: no-question,question,question-and-answer,multiple-question,multiple-question-and-answer
distilabel_metadata.role: system
distilabel_metadata.content: # Thread: is my work correct?...simple function
  
  1. ## is my work correct?...simple function
  
  a recursive function int fibo(int n) that returns the nth fibonacci number.
  
  i dont really quite get this..so here goes
  
  Code:
  ```int fibo (int n)
  {
  
  return fibo(n-1) + fibo(n-2);
  
  }```
  
  2. You need a simple case to stop the recursion.
  Like
  if ( n <= 1 ) return n;
  
  3. You need something like this:
  Code:
  ```if (n <= 1)
  {
  return 1;
  }```
  If you want to stop it at the logical point. Thus the function would be written as this:
  Code:
  ```int fibo(int n)
  {
  if (n <= 1)
  {
  return 1;
  }
  return fibo(n-1) + fibo(n-2);
  }```
  Also, keep in mind that this is zero based, thus fibo(5) returns 8, not 5.
  
  4. thanks guys...i understand now
  
  but need to check if my last code is correct..pls read first
  
  1.function int isPrime(int n ) that returns 1 if n is a prime and 0 otherwise.
  
  done this already but if needs any corrections here it is:
  
  Code:
  ```int isPrime (int n)
  {
  
  if (n%2 != 0)
  
  return 1;
  
  else
  
  return 0;
  
  }```
  2. a recursive function int fibo (int n) that returns the nth fibonacci number
  
  done this already...thanks for the corrections!
  
  3. A function int isFiboPrime (int n) that checks whether the nth fibonacci number is a prime.
  This function must call the 1 & 2 functions
  
  so heres my code:
  
  Code:
  ```int isFiboPrime (int n)
  {
  
  if ( fibo(n) ! isPrime(n) )
  printf ("Not Prime");
  
  else
  
  printf ("Prime");
  
  }```
  is this correct?
  
  5. isPrime doesn't check for, say, division by three. You need to check for division probably up to half the number. For example, check if 21 is prime. Your function says it is, but if you check for three, you'll realize it's not. In code:
  Code:
  ```int isPrime (int n)
  {
  for (int i = 2; i <= (n/2); i++)
  {
  if (n%i == 0)
  {
  return 0;
  }
  }
  }```
  
  6. hmmm i see so it was only for division by 2...i didnt know that...thanks for the correction
  
  but how about my third function...is it correct?
  
  7. Try this:
  Code:
  ```int isFiboPrime (int n)
  {
  int temp = fibo(n);
  if (isPrime(temp) == 1)
  return 1;
  else
  return 0;
  }```
  edit: sorry, you wanted to printf:
  Code:
  ```void  isFiboPrime (int n)
  {
  int temp = fibo(n);
  if (isPrime(temp) == 1)
  printf ("Prime");
  else
  printf ("Not Prime");
  }```
  
  8. aaww..i didnt thought of this before...i guess i need more practice
  
  btw will my answer still works?...
  
  thanks for corrections
  
  EDIT: OT, a manchester united fan?...hehe im going for chelsea this season...
  
  9. I don't think so. It will check isPrime, but I don't think (I could be wrong) it would take into acount the fibo(n) call. Also, my method is clearer and makes for more readable code.
  
  10. ok thans...gonna check this out....
  
  thanks for the corrections...
  
  really thanks
  
  11. That's what we're here for!
  
  12. If no number from 2 to sqrt(n) can divide evenly into n, then n is prime.
  
  Code:
  ```for test = 2; test * test < n; ++test
  {
  if n divisible by test  /* not prime, return failure */
  }
  /* n passed all tests, return success */```
  
  13. I would like to make a small modification to the last post on calculating primes to improve its efficieny. Trying to divide n only by numbers between 2 to sqrt(n) reduces a lot of work, however we can reduce that too, by half if we skip all even numbers other than 2.
  
  Code:
  ```int isPrime (int n)
  {
  if (n == 2)
  return 1;
  if( n % 2 == 0)
  return 0;      // all even numbers except 2 are non primes
  
  for (int i = 3; i * i <n; i+=2 )      //check only with odd numbers less than sqrt(n)
  {
  if ( n % i == 0)
  return 0;
  }
  
  return 1;
  }```
distilabel_metadata.role: user
distilabel_metadata.raw_output_q_a_detector_0: This document is a discussion thread from a forum where users are discussing the implementation of a recursive Fibonacci function and a function to check if a number is prime. The thread also includes a function that checks if the nth Fibonacci number is prime. The discussion includes questions, answers, and code corrections.
  
  Label: multiple-question-and-answer