Δημοσιεύτηκε: 19 Αύγ 2011, 15:28
από UnKnown96
Έφτιαξα ένα πρόγραμμα, το οποιό του δίνεις έναν αριθμό και μετά αυτό σου δίνει τις ακόλουθες πληροφορίες:

1) Τον αριθμό Fibonacci του.
2) Τον φίλο αριθμό του.
3) Αν είναι μονός ή ζυγός.
4) Αν είναι τέλειος, άφθονος ή ανεπαρκής.
5) Τον τριγωνικό αριθμό του.

Το έκανα να δουλεύει με θετικούς ακέραιους αριθμούς μόνο.

Εδώ είναι ο κώδικας σε C.

Κώδικας: Επιλογή όλων

#include <stdio.h>

/**********************************************************************************/

// Triangular Number Function
unsigned long long int TriangularNumber (unsigned long long int Input) {

unsigned long long int Counter, Triangular = 0;

for (Counter = 1; Counter <= Input; Counter++) { Triangular += Counter; }

return Triangular;
}

/**********************************************************************************/

// Fibonacci Number Function
unsigned long long int FibonacciNumber (unsigned long long int Input) {

return (Input * 2) - 3;
}

/**********************************************************************************/

// Odd/Even Number Function
unsigned long long int OddEvenNumber (unsigned long long int Input) {

if (Input % 2 == 0) return 1;
else return 0;
}

/**********************************************************************************/

// Perfect/Abundant/Deficient Number Function
unsigned long long int PADNumber (unsigned long long int Input) {

unsigned long long int Counter, Sum = 0;

for (Counter = 1; Counter < Input; Counter++) {
if (Input % Counter == 0) Sum += Counter;
}

if (Input < Sum) return 1;
else if (Input > Sum) return 2;
else return 0;
}

/**********************************************************************************/

// Friend Number Function
unsigned long long int FriendNumber (unsigned long long int Input) {

unsigned long long int Counter, Friend = 0, Check = 0;

for (Counter = 1; Counter < Input; Counter++) {
if (Input % Counter == 0) Friend += Counter;
}

for (Counter = 1; Counter < Friend; Counter++) {
if (Friend % Counter == 0) Check += Counter;
}

if (Input != Friend && Input == Check) return Friend;
else return 0;
}

/**********************************************************************************/

// Main Function
void main (void) {

unsigned long long int FibonacciNumber (unsigned long long int Input);
unsigned long long int FriendNumber (unsigned long long int Input);
unsigned long long int Input;
unsigned long long int OddEvenNumber (unsigned long long int Input);
unsigned long long int PADNumber (unsigned long long int Input);
unsigned long long int TriangularNumber (unsigned long long int Input);

printf ("Number to analyze: ");
scanf ("%llu", &Input);

puts ("\nResults:\n========");

printf ("\nFibonacci number: %llu.", FibonacciNumber(Input) );
printf ("\nFriend number (0 = NO): %llu.", FriendNumber(Input) );
printf ("\nOdd/Even number (0/1): %llu.", OddEvenNumber(Input) );
printf ("\nPerfect/Abundant/Deficient number (0/1/2): %llu.", PADNumber(Input) );
printf ("\nTriangular number: %llu.", TriangularNumber(Input) );

puts ("\n\nEnd of results.");
}