Numeros primos em c

Disponível somente no TrabalhosFeitos
  • Páginas : 8 (1905 palavras )
  • Download(s) : 0
  • Publicado : 3 de janeiro de 2013
Ler documento completo
Amostra do texto
Programação I - ol (2012/2013)
1º Trabalho – Data de entrega: 7.11.2012
DIFCUL

Números primos
Objectivo
Um número inteiro maior do que um diz-se primo se e só se apenas admite como divisores a unidade e o próprio número.
Em particular, dois números primos que diferem duas unidades entre si dizem-se primos gémeos.
Os números primos têm diversas aplicações na informática, nomeadamente nacifra de mensagens utilizadas, por exemplo,
em transacções financeiras.
O objectivo deste trabalho é desenvolver um programa interactivo que permita efectuar as seguintes operações básicas,
consoante a opção escolhida pelo utilizador.
• determinar se um dado número é primo;
• contar o número de primos até um dado número (inclusive);
• escrever o maior primo menor do que um dado número;
•escrever a lista dos pares de primos gémeos até um dado número (inclusive).
O programa deve apresentar um menu, isto é, imprimir uma sequência de linhas que indicam as opções disponíveis. O menu
deve aparecer no ecrã exactamente como a seguir indicado:
Menu:
1 - Introduzir novo numero
2 – Eh primo?
3 – Contar primos
4 - Maior primo
5 – Lista de gemeos
0 – Terminar
Após a escrita do menu, oprograma deve avisar o utilizador de que está pronto para ler a opção escolhida pelo utilizador e
executá-la.
A opção 1 permite ao utilizador introduzir um novo inteiro positivo que deve ser guardado e considerado na execução das
restantes opções 2 a 5.
Após executar qualquer das opções, excepto a opção 0 que faz terminar a execução, o programa deve apresentar o menu, e
avisar o utilizadorque está pronto a ler um novo valor de opção, em seguida ler esse valor e prosseguir com a execução dessa
nova opção. Isto é, o programa irá efectuar repetidamente a apresentação do menu, a leitura de uma opção e o processamento
dessa opção, enquanto a opção indicada for diferente de 0.
Se for indicada uma opção não existente, o programa deve enviar uma mensagem indicando que a opção não éconhecida.
Ao conceber o programa, deve assumir que o utilizador é bem comportado quando escolhe a opção 1 e que só introduz
inteiros positivos maiores do que um.

Funções a desenvolver
No seu programa deve, obrigatoriamente, definir as seguintes funções:
• int ehPrimo ( int n ), que dado um número inteiro n, devolve 1 se o número é primo e 0, caso contrário.
• int contaPrimos ( int n ), que dadoum número inteiro n, devolve o número de primos menores ou iguais a n.
• int maiorPrimo ( int n ), que dado um número inteiro n, devolve o maior primo menor do que n.
• void listaGemeos ( int n ), que dado um número inteiro n, imprime a lista de pares de primos gémeos
menores ou iguais a n.
• void menu ( void ), que escreve o menu.
Poderá definir também outras funções que considereconvenientes nomeadamente para evitar repetir várias vezes código
muito semelhante ou para melhor estruturar o seu programa e o tornar mais fácil de compreender.
Todas as definições de funções devem ser precedidas de um comentário indicando sucintamente qual o objectivo da função e
qual o significado do valor retornado pela função, caso exista.
Por exemplo, para a função ehPrimo acima referida, ocomentário em causa poderia ser o seguinte:
/*
* Funcao: ehPrimo
Pag. 1 de 6

*
*
*/

Verifica se o parametro n eh um numero primo
Retorna 1 se n eh primo e 0 no caso contrario

Como devem conceber o programa
É aconselhado que o desenvolvimento seja feito de forma incremental, isto é, devem começar por desenvolver a estrutura
geral do programa, de modo a apresentar o menu, e conseguirexecutar as opções 1, 2 e 0. Só quando estas opções estiverem
a funcionar correctamente devem passar à concretização duma nova opção. Não é necessário concretizar as opções seguindo
a sua ordem.
Note que as opções do menu devem ser exactamente as apresentadas acima. Mesmo que não concretize alguma opção, deve
manter os números das opções e garantir que se o utilizador escolher essa opção é...
tracking img