1 εως 100.000:
Οι αριθμοί 220 και 284 είναι φίλοι.
Οι αριθμοί 1184 και 1210 είναι φίλοι.
Οι αριθμοί 2620 και 2924 είναι φίλοι.
Οι αριθμοί 5020 και 5564 είναι φίλοι.
Οι αριθμοί 6232 και 6368 είναι φίλοι.
Οι αριθμοί 10744 και 10856 είναι φίλοι.
Οι αριθμοί 12285 και 14595 είναι φίλοι.
Οι αριθμοί 17296 και 18416 είναι φίλοι.
Οι αριθμοί 63020 και 76084 είναι φίλοι.
Οι αριθμοί 66928 και 66992 είναι φίλοι.
Οι αριθμοί 67095 και 71145 είναι φίλοι.
Οι αριθμοί 69615 και 87633 είναι φίλοι.
Οι αριθμοί 79750 και 88730 είναι φίλοι.
100.001-500.000:
Οι αριθμοί 100485 και 124155 είναι φίλοι.
Οι αριθμοί 122265 και 139815 είναι φίλοι.
Οι αριθμοί 122368 και 123152 είναι φίλοι.
Οι αριθμοί 141664 και 153176 είναι φίλοι.
Οι αριθμοί 142310 και 168730 είναι φίλοι.
Οι αριθμοί 171856 και 176336 είναι φίλοι.
Οι αριθμοί 176272 και 180848 είναι φίλοι.
Οι αριθμοί 185368 και 203432 είναι φίλοι.
Οι αριθμοί 196724 και 202444 είναι φίλοι.
Οι αριθμοί 280540 και 365084 είναι φίλοι.
Οι αριθμοί 308620 και 389924 είναι φίλοι.
Οι αριθμοί 319550 και 430402 είναι φίλοι.
Οι αριθμοί 356408 και 399592 είναι φίλοι.
Οι αριθμοί 437456 και 455344 είναι φίλοι.
Οι αριθμοί 469028 και 486178 είναι φίλοι.
ΤΕΛΕΥΤΑΙΑ ΕΚΔΟΣΗ ΚΩΔΙΚΑ
- Κώδικας: Επιλογή όλων
/* This programme counts the numbers that are friends.*/
#include<stdio.h>
int func_sum(int num){
int div=0,sum=0;
for(div=1;div<=num/2;div++){
if((num%div)==0){
sum=sum+div;}
}
return sum;
}
int main(){
int *p;
int i,j,k,size,n=0;
int low=0,high=0,num=0,sum=0,l=0,m=0;
printf ("Give the lower search field number, except number 0 , and press enter :\n");
scanf ("%d",&low);
printf ("Give the upper search field number and press enter :\n");
scanf ("%d",&high);
if (high<low){
printf ("Give the upper search field number be greater than lower and press enter :\n");
scanf ("%d",&high); }
int arr[high-low];
for(num=low;num<high;num++){
sum=func_sum(num);
/*1.-------Place the numbers in an array----------*/
if(func_sum(sum)==num && sum!=num){
arr[n]=num;
arr[n+1]=sum;
n=n+2;}
}
/*a.-------Remove douplicates-----------*/
size=n;
p=arr;
for(i=0;i<size;i++){
for(j=0;j<size;j++){
if(i==j){
continue;
}
else if(*(p+i)==*(p+j)){
k=j;
size--;
while(k < size){
*(p+k)=*(p+k+1);
k++;
}
j=0;
}
}
}
printf("\nThe couples of friend numbers are %d,the: \n",size/2);
for(i=0;i < size;i=i+2){
printf(" %d and %d\n",arr[i],arr[i+1]);
}
return 0;
}
/*---------------------------------Under GPL-------------------------------------------
Created by konnn (Konstantinos Spalas).Email:konnn@live.com*/
Off topic:
Άνοιξα αυτό το θέμα σε ξεχωριστό νήμα ώστε να το δουν και άλλοι που ίσως να μη επισκέπτονται συχνά το νήμα με θέμα τη γλώσσα C.
έγραψε:Η ΦΙΛΙΑ ΣΤΑ ΜΑΘΗΜΑΤΙΚΑ
Οι φίλοι αριθμοί
Το πρόβλημα των τέλειων αριθμών : Ένας αριθμός ονομάζεται τέλειος αν
είναι ίσος με το άθροισμα των γνησίων διαιρετών του. Για παράδειγμα το 6 και το 28:
6=1 +2+3, 28=1+2+4+7+14. Όλοι οι τέλειοι αριθμοί που είναι γνωστοί σήμερα είναι
άρτιοι. Είναι ανοικτό πρόβλημα αν υπάρχουν περιττοί (μονοί) τέλειοι αριθμοί.
Ακόμη, είναι ανοικτό το αν υπάρχουν άπειροι τέλειοι αριθμοί. Με δεδομένο ότι τα
προβλήματα των τέλειων αριθμών αποδίδονται στους Πυθαγορείους, είναι τα
παλαιότερα ανοικτά ακόμα προβλήματα στα μαθηματικά.
Πάλι στους Πυθαγόρειους οφείλονται και οι φίλοι αριθμοί. ∆υο αριθμοί
λέγονται φίλοι αν ο καθένας ισούται με το άθροισμα των γνήσιων διαιρετών του
άλλου. Για παράδειγμα το 220 και το 284.
284=1+2+4+5+10+11+20+22+44+55+110 (όλοι οι διαιρέτες του 220).
220=1+2+4+71+142 (όλοι οι διαιρέτες του 284).
∆εν γνωρίζουμε σήμερα αν τα ζευγάρια των φίλων αριθμών είναι άπειρα ή
πεπερασμένα.
* Ο Pierre Fermat το 1636 βρήκε το ζεύγος 17 296, 18416
* Ο Renè Descartes βρήκε ένα τρίτο ζεύγος, 9 363 584, 9 437 056
* Ο Nicolò Paganini, το 1866 βρήκε το 1 184, 1 210
Υπάρχουν περίπου 12000 ζευγάρια από φίλους αριθμούς.
Πάνω σε αυτό έπεσα σε ένα βιβλίο που διαβάζω τελυταία. Δε γνώριζα την παραπάνω ιδιότητα και θέλησα να τη μετατρέψω σε ένα ατοματισμό σε C.
Ο παρακάτω κώδικας σου ζητά να δώσεις ένα αριθμό ώστε να δει εάν έχει φίλο. Δεν είναι κάτι δύσκολο, τον παραθέτω και θα ήταν ωραίο να τον τροποποιήσουμε ώστε να βρούμε όλα τα ζευγάρια-αν δεν απαιτεί μεγάλη υπολογιστική ισχή και μνήμη .
Αν ναι, μπορούμε να σπάσουμε τα πεδία αναζήτησης.
Ίσως να υπάρχει κάπου στο διαδίκτυο και άλλος κώδικας που να βρίσκει και τα ζευγάρια, δεν έψαξα ιδιαίτερα.
ΑΡΧΙΚΗ ΕΚΔΟΣΗ ΚΩΔΙΚΑ
- Κώδικας: Επιλογή όλων
/* Αυτό προγραμματάκι βρίσκει εάν ένας αριθμός έχει φίλο */
#include <stdio.h>
int div_sum(int a){
int k=0;
int z=0;
int b=0;
for(k=1;k<=a/2;k++){
if((a%k)==0){
b=b+k;}
}
printf("Το άθροισμά των διαιρέτων του %d είναι %d \n" ,a,b );
return b;
}
main(){
int i=0;
int j=0;
printf ("Δώσε ένα αριθμό,για να βρούμε αν έχει φίλο, και πατήστε enter :\n");
scanf ("%d",&i);
j=div_sum(i);
if(div_sum(j)==i) printf ("Άρα αριθμοί %d και %d είναι φίλοι.\n ", i,j );
else
printf("Ο αριθμός %d δεν έχει φίλο.\n" , i);
/* GNU v2 */
}



