Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int* gyorsitotar;
- int also, felso;
- void int_beolvas(int* x);
- int baratsagos(int a, int b);
- int kisebboszto_osszeg(int szam);
- int main()
- {
- // fuggvenyek hivasa, szamparok kiiratasa (a, b) formatumban
- while (1) {
- int_beolvas(&also);
- int_beolvas(&felso);
- if (also < felso) {
- break;
- }
- printf("Invalid input\n");
- }
- gyorsitotar = (int*) malloc((felso - also + 1) * sizeof(int));
- .
- for (int i = also; i < felso; i++) {
- for (int j = i + 1; j <= felso; j++) {
- if (baratsagos(i, j)) {
- printf("(%d,%d)\n", i, j);
- }
- }
- }
- free(gyorsitotar);
- return 0;
- }
- void int_beolvas(int* x) {
- // 1 db integer ertek ellenorzott beolvasasa
- printf("szám: ");
- scanf("%d", x);
- }
- int baratsagos(int a, int b) {
- // egy szamparrol annak megallapitasa, hogy baratsagos-e
- return kisebboszto_osszeg(a) == b && kisebboszto_osszeg(b) == a;
- }
- int kisebboszto_osszeg(int szam) {
- // egy szamnak a nala kisebb osztoi osszegenek kiszamitasa
- if (gyorsitotar[szam - also] != 0) {
- return gyorsitotar[szam - also];
- }
- int eredmeny = 0;
- for (int i = 1; i < szam; i++) {
- if (szam % i == 0) {
- eredmeny += i;
- }
- }
- gyorsitotar[szam - also] = eredmeny;
- return eredmeny;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement