OneCompiler

Atividade P1

Fatorial

#include <stdio.h>
#include <stdlib.h>

long int fatorial(long int n){
 long int result;
   if (n == 0 || n == 1 ){
        result = 1;
        printf("Resultado: %ld\n", result);
        return result;
    } else if (n > 1){
        result = n * fatorial(n - 1);
        printf("Resultado: %ld\n", result);
        return result;
    }
    
    return 0;
}

int main(){
    int numero = 0;
    int escolha = 0;
        do
        {
            printf("1. Calcular fatorial\n");
            printf("2. Sair\n");
            scanf("%d", &escolha);

            switch (escolha)
            {
            case 1:
                printf("Digite um numero para calcular o fatorial: \n");
                scanf("%d", &numero);
                fatorial(numero);
            
            default:
                break;
            }

        } while (escolha != 2);
        
        return 0;
    }

Fibonacci

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <locale.h>

int main (){

    setlocale(LC_ALL, "Portuguese");

    int numero, n1, n2, i, aux, ultimoNumero;
    int escolha = 0;

    n1 = 0;
    n2 = 1;

        do {
            printf("\n1. Calcular fibonacci\n");
            printf("2. Sair\n");
            scanf("%d", &escolha);

            switch (escolha){
            case 1:
                printf("Digite um numero: \n");
                scanf("%d", &numero);
                printf("\nSerie de Fibonacci:\n\n");
                printf("%d\n", n2);

                    if (numero < 0 || numero > 46){
                        printf("Digite um numero entre 0 e 46\n");
                    
                    } else if (numero >= 0 && numero <= 46){

                            for (i = 2; i <= numero; i++) {
                                
                                aux = n1 + n2;
                                n1 = n2;
                                n2 = aux;
                                ultimoNumero = aux;

                                printf("%d\n", aux);
                            }
                        }

                    printf("\nO termo %d da Sequencia de Fibonacci eh o: %d ", numero, ultimoNumero);
                    n1 = 0;
                    n2 = 1;
                break;
            
            default:
                break;
            }

        } while (escolha != 2);
        
    return 0;
}

Impressão recursiva dos números naturais de 1 a n

#include <stdio.h>

void imprimirNumeros(int n) {
    if (n > 0) {
        imprimirNumeros(n - 1); 
        printf("%d ", n);      
    }
}

int main() {
    int n;

    printf("Digite um numero inteiro positivo: ");
    scanf("%d", &n);

    if (n < 1) {
        printf("Por favor, insira um numero maior ou igual a 1.\n");
    } else {
        printf("Numeros naturais de 1 a %d:\n", n);
        imprimirNumeros(n);
        printf("\n");
    }

    return 0;
}

Função Recursiva

#include <stdio.h>

int soma(int num) {
    if (num == 1) {
        return 1; // Caso base
    }
    return num + soma(num - 1);
}

int main() {
    int n;

    printf("Digite um numero inteiro positivo: ");
    scanf("%d", &n);

    if (n < 1) {
        printf("Numero inválido. Insira um numero maior ou igual a 1.\n");
    } else {
        int resultado = soma(n);
        printf("A soma de 1 até %d é: %d\n", n, resultado);
    }

    return 0;
}

 

Algoritmo de Euclides

#include <stdio.h>

int mdc(int a, int b) {
    while (b != 0) {
        int resto = a % b;
        a = b;
        b = resto;
    }
    return a;
}

int main() {
    int x, y;

    printf("Digite dois numeros inteiros: ");
    scanf("%d %d", &x, &y);

    printf("MDC(%d, %d) = %d\n", x, y, mdc(x, y));
    return 0;
}

MMC

#include <stdio.h>

int mdc(int a, int b) {
    while (b != 0) {
        int resto = a % b;
        a = b;
        b = resto;
    }
    return a;
}

int mmc(int a, int b) {
    return (a * b) / mdc(a, b);
}

int main() {
    int x, y;

    printf("Digite dois numeros inteiros: ");
    scanf("%d %d", &x, &y);

    printf("MMC(%d, %d) = %d\n", x, y, mmc(x, y));
    return 0;
}

Adição Modular

#include <stdio.h>

void tabelaAdicaoModular(int n) {
    printf("Tabela Z_%d para adição modular:\n", n);
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            printf("%2d ", (i + j) % n);
        }
        printf("\n");
    }
}

int main() {
    int n;

    printf("Digite o valor de n para Z_n: ");
    scanf("%d", &n);

    tabelaAdicaoModular(n);
    return 0;
}

Multiplicação Modular

#include <stdio.h>

void tabelaMultiplicacaoModular(int n) {
    printf("Tabela Z_%d para multiplicacao modular:\n", n);
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            printf("%2d ", (i * j) % n);
        }
        printf("\n");
    }
}

int main() {
    int n;

    printf("Digite o valor de n para Z_n: ");
    scanf("%d", &n);

    tabelaMultiplicacaoModular(n);
    return 0;
}