#include <stdio.h>
#include <string.h>

int calculate_cpf_digit(int cpf[], int length) {
    int sum = 0;
    for (int i = 0; i < length; i++) {
        sum += cpf[i] * (length + 1 - i);
    }
    int digit = (sum * 10) % 11;
    return (digit == 10) ? 0 : digit;
}

int calculate_isbn_digit(int isbn[], int length) {
    int sum = 0;
    for (int i = 0; i < length; i++) {
        sum += isbn[i] * (i + 1);
    }
    int digit = sum % 11;
    return digit;
}

void validate_cpf() {
    int cpf[11];
    printf("Digite os primeiros 9 dígitos do CPF: ");
    for (int i = 0; i < 9; i++) {
        scanf("%d", &cpf[i]);
    }

    cpf[9] = calculate_cpf_digit(cpf, 9);
    cpf[10] = calculate_cpf_digit(cpf, 10);

    printf("CPF completo: ");
    for (int i = 0; i < 11; i++) {
        printf("%d", cpf[i]);
    }
    printf("\n");
}

void validate_isbn() {
    int isbn[10];
    printf("Digite os primeiros 9 dígitos do ISBN: ");
    for (int i = 0; i < 9; i++) {
        scanf("%d", &isbn[i]);
    }

    isbn[9] = calculate_isbn_digit(isbn, 9);

    printf("ISBN completo: ");
    for (int i = 0; i < 9; i++) {
        printf("%d", isbn[i]);
    }
    if (isbn[9] == 10) {
        printf("X\n");
    } else {
        printf("%d\n", isbn[9]);
    }
}

int main() {
    int option;
    printf("Escolha uma opção:\n");
    printf("1 - Calcular CPF completo\n");
    printf("2 - Calcular ISBN completo\n");
    printf("Opção: ");
    scanf("%d", &option);

    switch (option) {
        case 1:
            validate_cpf();
            break;
        case 2:
            validate_isbn();
            break;
        default:
            printf("Opção inválida.\n");
            break;
    }

    return 0;
}
