Um número n é primo caso ele não seja divisível por nenhum out...
Tay
- Matérias - Informática
Um número n é primo caso ele não seja divisível por nenhum outro número que
esteja no intervalo [2..n-1]. ou seja, 5 é um número primo porque ele não é
divisível pelos valores 4, 3 e 2. por outro lado, 8 não é primo pois ele é divisível
por 4 e 2. crie uma função em c que receba um número n como entrada e
retorne 1 caso n seja um número primo e 0 caso contrário
esteja no intervalo [2..n-1]. ou seja, 5 é um número primo porque ele não é
divisível pelos valores 4, 3 e 2. por outro lado, 8 não é primo pois ele é divisível
por 4 e 2. crie uma função em c que receba um número n como entrada e
retorne 1 caso n seja um número primo e 0 caso contrário
1 Resposta
Ver resposta
Int ehprimo( int numero ) {
if (numero %2 ==0 ) {
/* é par, não pode ser primo */
return 0
}
int retorno = 1;
for (int i=3 ; i< (numero/3)+1 ; i+=2 ) {
if (numero % i == 0 ) {
return 0
}
}
return 1
}
Como funciona.
primeiro testamos se o número é divisível por 2, ou seja, resto da divisào por 2 for igual a 0. Dessa forma, agilizamos os testes. Exceto pelo 2, todos os números primos são ímpares.
O for começa com 3 e vai de 2 em 2 buscando uma divisão que dê resto 0.
Se achar alguma divisào que dê resto 0, o número não é primo. Retornamos 0.
Se chegar ao fim do for, significa que não achou divisor algum, retorna 1. O for só precisa ir até mais ou menos um terço do valor do número. Pois se ele já passou pela divisào por 3 ... o maior divisor dele deve ser menor que um terço.
if (numero %2 ==0 ) {
/* é par, não pode ser primo */
return 0
}
int retorno = 1;
for (int i=3 ; i< (numero/3)+1 ; i+=2 ) {
if (numero % i == 0 ) {
return 0
}
}
return 1
}
Como funciona.
primeiro testamos se o número é divisível por 2, ou seja, resto da divisào por 2 for igual a 0. Dessa forma, agilizamos os testes. Exceto pelo 2, todos os números primos são ímpares.
O for começa com 3 e vai de 2 em 2 buscando uma divisão que dê resto 0.
Se achar alguma divisào que dê resto 0, o número não é primo. Retornamos 0.
Se chegar ao fim do for, significa que não achou divisor algum, retorna 1. O for só precisa ir até mais ou menos um terço do valor do número. Pois se ele já passou pela divisào por 3 ... o maior divisor dele deve ser menor que um terço.
Sua resposta
Mais perguntas de Informática
![Toda Materia](https://escolaeducacao.org/assets/images/element/01.webp)
Você tem alguma dúvida?
Faça sua pergunta e receba a resposta de outros estudantes.