Advertisement
VF-

Untitled

VF-
Nov 17th, 2022
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.45 KB | Source Code | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int* gyorsitotar;
  5. int also, felso;
  6.  
  7. void int_beolvas(int* x);
  8. int baratsagos(int a, int b);
  9. int kisebboszto_osszeg(int szam);
  10.  
  11. int main()
  12. {
  13.     // fuggvenyek hivasa, szamparok kiiratasa (a, b) formatumban
  14.  
  15.     while (1) {
  16.         int_beolvas(&also);
  17.         int_beolvas(&felso);
  18.  
  19.         if (also < felso) {
  20.             break;
  21.         }
  22.  
  23.         printf("Invalid input\n");
  24.     }
  25.  
  26.     gyorsitotar = (int*) malloc((felso - also + 1) * sizeof(int));
  27. .
  28.     for (int i = also; i < felso; i++) {
  29.         for (int j = i + 1; j <= felso; j++) {
  30.             if (baratsagos(i, j)) {
  31.                 printf("(%d,%d)\n", i, j);
  32.             }
  33.         }
  34.     }
  35.  
  36.     free(gyorsitotar);
  37.  
  38.     return 0;
  39. }
  40.  
  41. void int_beolvas(int* x) {
  42.     // 1 db integer ertek ellenorzott beolvasasa
  43.  
  44.     printf("szám: ");
  45.     scanf("%d", x);
  46. }
  47.  
  48. int baratsagos(int a, int b) {
  49.     // egy szamparrol annak megallapitasa, hogy baratsagos-e
  50.     return kisebboszto_osszeg(a) == b && kisebboszto_osszeg(b) == a;
  51. }
  52.  
  53. int kisebboszto_osszeg(int szam) {
  54.     // egy szamnak a nala kisebb osztoi osszegenek kiszamitasa
  55.     if (gyorsitotar[szam - also] != 0) {
  56.         return gyorsitotar[szam - also];
  57.     }
  58.  
  59.     int eredmeny = 0;
  60.  
  61.     for (int i = 1; i < szam; i++) {
  62.         if (szam % i == 0) {
  63.             eredmeny += i;
  64.         }
  65.     }
  66.        
  67.     gyorsitotar[szam - also] = eredmeny;
  68.        
  69.     return eredmeny;
  70. }
  71.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement