...collaborate on
/**
title: Ano Lectivo 2003/04 -- Resolução da Ficha nº2 
ficheiro: pp203resf02.c autor: PRH versao de: 2004.03.15
.uso do printf() e do scanf()
.uso de condicoes
.uso de ciclos diversos
**/  

Divisores de um número (Ficha nº2 - Exercício 1)


/**
title: Divisores de um número (Ficha nº2 - Exercício 1)
**/  
#include <stdio.h>

/*----- programa principal -----*/  
int main( )
{int num=0, divisor;

  printf("Escreva o número cujos divisores quer calcular: "); 
  while (num<=0) { scanf("%d",&num); }
  
  printf("Lista dos Divisores de %d:\n",num);
  for (divisor=1; divisor<=num; divisor++)
    { 
      if ((num%divisor)==0) { printf("%d\n",divisor);  } 
    }
 
  return(0);
}

Divisores de um número -- 2ª versão, optimizada (Ficha nº2 - Exercício 1)

/**
title: Divisores de um número -- 2ª versão, optimizada (Ficha nº2 - Exercício 1)
**/  
#include <stdio.h>
#include <math.h>

/*----- programa principal -----*/  
int main( )
{int num=0, divisor, lim;

  printf("Escreva o número cujos divisores quer calcular: "); 
  while (num<=0) { scanf("%d",&num); }
  
  printf("Lista dos Divisores de %d:\n",num);
  lim = (int)sqrt((double)num);
  for (divisor=1; divisor<=lim; divisor++)
    { 
      if ((num%divisor)==0) { printf("um par de divisores é %d  e %d\n",divisor, num/divisor);  } 
    }
 
  return(0);
}

Menor Múltiplo Comum de dois números (Ficha nº2 - Exercício 3)

/**
title: Menor Múltiplo Comum de dois números (Ficha nº2 - Exercício 3)
**/  
#include <stdio.h>

/*----- programa principal -----*/  
int main( )
{int N,M,MMC; 
 int maior;

  printf("Indique os números cujo MMC quer calcular: "); 
  scanf("%d%d",&N,&M); 
  MMC = maior = (N>=M)? N: M;
  while (((MMC%N)!=0)||((MMC%M)!=0))
    { 
      MMC += maior;
    }
  printf("O Menor Multiplo Comum entre %d e %d é: %d \n",N,M,MMC);
    
  return(0);
}

Tudo ao contrário, ou "Números Invertidos" (Ficha nº1 - Exercício 5)

/**
title: Tudo ao contrário, ou "Números Invertidos"  (Ficha nº1 - Exercício 5)
**/  
#include <stdio.h>

/*----- programa principal -----*/  
int main( )
{int orig= -1; 
 int inverte;

  printf("Indique o Numero Original (>=0) que quer inverter: "); 
  while (orig<0) { scanf("%d",&orig); }
  inverte = 0;
  
  while (orig)
    { 
      proxdig = orig%10; 
      orig = orig/10;
      inverte = inverte*10 + proxdig;
    }
    
  printf("O numero invertido e: %d \n",inverte);
  return(0);
}

Os N primeiros Números de Fibonacci (Ficha nº2 - Exercício 6)

                                                      
/**
title: Os N primeiros Números de Fibonacci (Ficha nº2 - Exercício 6)
**/  
#include <stdio.h>
#define MAX 20

/*----- função de Fibonacci -----*/  
int fib( int n )
{int f;
  if ((n==0)||(n==1)) 
       { f = 1; }
  else { f = fib(n-1) + fib(n-2); }
  return(f);  
}
/*----- programa principal -----*/  
int main( )
{int N; 
 int res;

  printf("Os %d primeiros números de FIBONACCI são: \n",MAX); 
  for ( N=0; N<MAX; N++ )
    { 
      res = fib(N);
      printf("%6d \n",res);
    }
    
  return(0);
}

r3 - 24 Jan 2005 - 17:31:05 - JoseCarlosRamalho
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Syndicate this site RSSATOM