Trabalho numeros Primos no intervalo
2 participantes
Binary Road :: Lógica Computacional :: Introdução à Programação Lógica :: Linguagens Formais e Autômatos :: Matemática discreta :: Estudo
Página 1 de 1
Trabalho numeros Primos no intervalo
- Código:
echo"#include<iostream>
using namespace std;
void main()
{
int n1, n2, i,j;
int cont=0;
cout<<"Vefifique no intevalo quais sao primos\n";
cout<<"Digite >> "; cin>>n1;
cout<<"Digite >> "; cin>>n2;
for(i=n1; i<=n2;i++)
{
cont=0;
for(j=1; j<i;j++)
{
if(i%j==0)
cont++;
}
if(cont<2)
cout<<">> "<<i<<" e primo \n";
}
}
Nao copie ! faça o seu !!!!";
ricardo- Mensagens : 2
Data de inscrição : 09/05/2010
Re: Trabalho numeros Primos no intervalo
3) Implemente uma função em C++ que receba como argumento dois valores inteiros positivos (x,y) e imprima todos os números primos contidos no intervalo x e y ( Um número natural é um número primo quando ele tem somente dois divisores: o número um e ele mesmo ). Suponha o intervalo 240 e 307 – valores x e y passados para a função. Ao final a função irá imprimir os seguintes números: 241, 251, 257, 263, 269, 271, 277, 281, 283, 293 e 307.
Ricardo fiz de uma maneira diferente, adicione mais verificações, e faça só com numeros positivos, sendo que 1 não é primo.
Lembrete: Para verificar se um inteiro negativo é primo, basta lembrar que se um número positivo é primo, então o seu oposto também o será.
Fonte: profcardy.com
Não Copiem
ricardo escreveu:
- Código:
echo"#include<iostream>
using namespace std;
void main()
{
int n1, n2, i,j;
int cont=0;
cout<<"Vefifique no intevalo quais sao primos\n";
cout<<"Digite >> "; cin>>n1;
cout<<"Digite >> "; cin>>n2;
for(i=n1; i<=n2;i++)
{
cont=0;
for(j=1; j<i;j++)
{
if(i%j==0)
cont++;
}
if(cont<2)
cout<<">> "<<i<<" e primo \n";
}
}
Nao copie ! faça o seu !!!!";
Ricardo fiz de uma maneira diferente, adicione mais verificações, e faça só com numeros positivos, sendo que 1 não é primo.
Lembrete: Para verificar se um inteiro negativo é primo, basta lembrar que se um número positivo é primo, então o seu oposto também o será.
Fonte: profcardy.com
Não Copiem
- Código:
#include <iostream>
#include <string>
using namespace std;
void main()
{
int num1, num2, i, j, swap, cont, cont2;
char resp;
do{
do{
system("cls");
cout<< "\tDigite o primeiro valor inteiro.\n\t";
cin>> num1; // recebe o numero digitado pelo usuáro
if(num1 < 1) // verifida se o usuário não digitou nem um numero abaixo de 1, se sim exibe a mensagem abaixo.
{
system("cls");
cout<< "\n\nO numero digitado tem que ser maior ou igual a 1\n\n";
system("pause");
}
}while(num1 < 1); // verifida se o usuário não digitou nem um numero abaixo de 1, se sim repete o laço.
do{
system("cls");
cout<< "\tDigite o segundo valor inteiro.\n\t";
cin>> num2; // recebe o numero digitado pelo usuáro
if(num2 < 1) // verifida se o usuário não digitou nem um numero abaixo de 1, se sim exibe a mensagem abaixo.
{
system("cls");
cout<< "\n\nO numero digitado tem que ser maior ou igual a 1\n\n";
system("pause");
}
}while(num2 < 1); // verifida se o usuário não digitou nem um numero abaixo de 1, se sim repete o laço.
if(num1 > num2) // verifica se o primeiro numero é maior que o segundo se for ele enverte os numeros.
{
swap = num1;
num1 = num2;
num2 = swap;
}
cont2=0; // Usado para verificar se foi encontrado algun numero primo ou não.
system("cls");
for(i = num1; i <= num2; i++)// Começa do menor numero digitado pelo usuário até o maior numero digitado pelo usuário.
{
cont=0;// verifica se o numero tem mais de um divisor, alem dele mesmo, pois qualquer numero divide por ele mesmo.
if(i != 1 && (i == 2 || i % 2 != 0)) // Verifica se o numero i é o numero 1, caso seja não executa o procedimento abaixo, pois 1 não é numero primo, se for 2 deicha passar mas nem outro numero par, pois nem um outro numero par é primo.
{
for(j = 1; j <= 9; j++) // Laço feito para dividir todos os numeros no intervalo acima diitado, de 1 a 9, pois qualquer numero é composto por estes numeros básicos, então pelomenos um numero deste, ele irá dividir e dar resto 0.
{
if(i % j == 0) // verifica se o numero de i é divisivel por o numero de j e o resto é 0.
cont++; // se for a variavel irá atribuir +1, ou seja i é divisivel por j e o resto é 0.
}
if(i > 1 && i < 9) // Se o valor estiver entre 2 e 9, o valor dividira pelomenos 2 veses, sendo que ele quer saber se no máximo o numero é divisivel por 1 alem dele mesmo, então qualquer numero nesta faixa é pelomenos divisivel duas veses.
cont--; // Então eliminamos um valor pois não queremos saber se ele é divisivel por ele mesmo, e sim por outros numeros e por 1 é claro.
}
if(cont == 1)// Verifica se o numero é divisivel só uma vez ou seja apenas por 1, pois qualquer numero divide por ele mesmo, caso seja verdade imprime o numero primo.
{
cout<< "Numero Primo:\t" << i << endl;
cont2++; // Soma-se +1 se tiver um numero primo, para afirmar que encontrou pelomenos 1 numero primo, se não é utilizado para avisar que não encontrou nem um numero primo.
}
}
system("pause");
if(cont2 == 0) // é utilizado para avisar que não encontrou nem um numero primo.
{
system("cls");
cout<< "Nem um numero foi encontrado no intervalo" << num1 << " ... " << num2 << endl;
system("pause");
}
system("cls");
cout<< "Gostaria de tentar encontrar um valor primo novamente? S = sim ou N = nao\n\t"; // Solicita ao usuário se ele gostaria de procura mais numeros primos novamente.
cin>> resp;
}while(resp == 's' || resp == 'S'); // Se a resposta so usuário for 'S' sim executa tudo novamente.
}
Renancr- Mensagens : 118
Data de inscrição : 08/03/2010
Binary Road :: Lógica Computacional :: Introdução à Programação Lógica :: Linguagens Formais e Autômatos :: Matemática discreta :: Estudo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos