Загрузка данных


#include <stdio.h>

int div_without_division(int a, int b) {
    int result = 0;

    if (a < 0) {
        a = -a;
    }

    while (a > 0) {
        a = a - b;
    }

    if (a == 0) {
        result = 1;
    }

    return result;
}

int is_prime(int number) {
    int result = 1;
    int i = 2;

    if (number < 2) {
        result = 0;
    }

    while (i * i <= number && result == 1) {
        if (div_without_division(number, i)) {
            result = 0;
        }

        i++;
    }

    return result;
}

int max_prime_divisor(int number) {
    int result = 0;
    int i;

    if (number < 0) {
        number = -number;
    }

    i = number;

    while (i >= 2 && result == 0) {
        if (div_without_division(number, i) && is_prime(i)) {
            result = i;
        }

        i--;
    }

    return result;
}

int main(void) {
    int number;
    int answer;
    char extra;

    if (scanf("%d%c", &number, &extra) != 2 || extra != '\n') {
        printf("n/a");
    } else {
        answer = max_prime_divisor(number);

        if (answer == 0) {
            printf("n/a");
        } else {
            printf("%d", answer);
        }
    }

    return 0;
}