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;
}