14-11-2007, 10:12 AM
A minha proposta já com o ponto 4 implementado:
Array#include <stdio.h>
#include <math.h>
int num_primo( int num ) {
int n;
num = abs( num );
if( num == 0 ) {
return 0;
}
if( num == 1 ) {
return 1;
}
for ( n=2; n<num; n++ ) {
if( (num % n) == 0 )
return 0; // não é número primo
}
return 1; // é número primo
}
int main( void ) {
// regra de ouro: inicializar sempre as variáveis
// é preferível declarar cada variável na sua linha
// evita erros e facilita a manutenção
int menu = -1;
int num = 0;
int num_tmp = 0;
while( menu != 0 ) {
printf ("\n1 - Introduza novo numero\n");
printf ("2 - Primo?\n");
printf ("3 - Lista de primos\n");
printf ("4 - Maior primo\n");
printf ("5 - Conta pares de primos gemeos\n");
printf ("0 - Sair\n");
printf ("Opção:");
scanf ("%d",&menu);
if( menu == 0 ) {
printf( "bye, bye!\n\n" );
return 0;
}
if( menu == 1 ) {
printf( "\nNumero?: " );
scanf("%d", &num);
}
if( menu == 2 ) {
if( num_primo( num ) )
printf( "Número %d é primo!", num );
else
printf( "Número %d não é primo!", num );
}
if( menu == 3 ) {
if( abs(num) > 0 ) {
printf( "\n\nListagem de números primos de 1 a %d.", num );
printf( "\n" );
for( num_tmp = 1; num_tmp <= num; num_tmp++ ) {
if( num_primo( num_tmp ) )
printf( "%d\n", num_tmp );
}
}
else
printf( "\n\nO número tem que ser maior que 0." );
}
if( menu == 4 ) {
if( abs( num ) > 0 ) {
for( num_tmp = num; num_tmp > 0; num_tmp-- ) {
if( num_primo( num_tmp ) ) {
printf( "O maior número primo de 1 a %d é %d.", num, num_tmp );
break;
}
}
}
else
printf( "\n\nO número tem que ser maior que 0." );
}
}
}[/quote]
Espero que ajude... :blink1:
Array#include <stdio.h>
#include <math.h>
int num_primo( int num ) {
int n;
num = abs( num );
if( num == 0 ) {
return 0;
}
if( num == 1 ) {
return 1;
}
for ( n=2; n<num; n++ ) {
if( (num % n) == 0 )
return 0; // não é número primo
}
return 1; // é número primo
}
int main( void ) {
// regra de ouro: inicializar sempre as variáveis
// é preferível declarar cada variável na sua linha
// evita erros e facilita a manutenção
int menu = -1;
int num = 0;
int num_tmp = 0;
while( menu != 0 ) {
printf ("\n1 - Introduza novo numero\n");
printf ("2 - Primo?\n");
printf ("3 - Lista de primos\n");
printf ("4 - Maior primo\n");
printf ("5 - Conta pares de primos gemeos\n");
printf ("0 - Sair\n");
printf ("Opção:");
scanf ("%d",&menu);
if( menu == 0 ) {
printf( "bye, bye!\n\n" );
return 0;
}
if( menu == 1 ) {
printf( "\nNumero?: " );
scanf("%d", &num);
}
if( menu == 2 ) {
if( num_primo( num ) )
printf( "Número %d é primo!", num );
else
printf( "Número %d não é primo!", num );
}
if( menu == 3 ) {
if( abs(num) > 0 ) {
printf( "\n\nListagem de números primos de 1 a %d.", num );
printf( "\n" );
for( num_tmp = 1; num_tmp <= num; num_tmp++ ) {
if( num_primo( num_tmp ) )
printf( "%d\n", num_tmp );
}
}
else
printf( "\n\nO número tem que ser maior que 0." );
}
if( menu == 4 ) {
if( abs( num ) > 0 ) {
for( num_tmp = num; num_tmp > 0; num_tmp-- ) {
if( num_primo( num_tmp ) ) {
printf( "O maior número primo de 1 a %d é %d.", num, num_tmp );
break;
}
}
}
else
printf( "\n\nO número tem que ser maior que 0." );
}
}
}[/quote]
Espero que ajude... :blink1:

![[Image: 400_small_best_promising_s.jpg]](http://www.bhmotorsports.com/images/awards/nominees/400_small_best_promising_s.jpg)