c++

Started by Kacetada, January 26, 2007, 06:45:41 PM

Previous topic - Next topic

Kacetada

Queria fazer um programa k pedi-se ao utilizador um numero e verifica se, se ele é primo....

Kacetada


whitehat

QuoteQueria fazer um programa k pedi-se ao utilizador um numero e verifica se, se ele é primo....

tem de ser em c ?

KTachyon

Tipo isto:

int main (int argc, char * const argv[]) {



int i, flag = 1;



int num;



std::cin >> num;



for (i = 2; i <= num - 1; i++) {

if (num % i == 0) {

flag = 0;

break;

}

}



if (flag) std::cout << "Primon";

else std::cout << "Não primon";



return 0;

}
My Q4 estimate: Macs: 5.89M; iPods: 4.19M; iPhones: 30.0M; iPads: 18.05M; Revenue: 37.00B; EPS: 9.50
AAPL Q3 result: Macs: 4.02M; iPods: 6.80M; iPhones: 26.0M; iPads: 17.04M; Revenue: 35.02B; EPS: 9.32

trmanco

QuoteTipo isto:

int main (int argc, char * const argv[]) {



int i, flag = 1;



int num;



std::cin >> num;



for (i = 2; i <= num - 1; i++) {

if (num % i == 0) {

flag = 0;

break;

}

}



if (flag) std::cout << "Primon";

else std::cout << "Não primon";



return 0;

}

isso e k e linguagem C++???

djo

Boa tarde...
tenho aulas de programação e nao percebo muito disto...
desta vez a prof pediu-nos pra fazer uma calculadora que apresente as 4 operações básicas e k realize varias operaçoes na mesma expressao... tera de calcular percentagens, possuir botao clear, inclua operações de factorial, raiz quadrada e potencia... tudo em visual C++.. se alg tiver algo pareçido... ajudem-me!!

crazii

os numeros primos não são previsiveis, por isso terias de incluir uma library com todos os numeros primos até um certo ponto, se o c++ tem isso procura googla

Anatra

paah...em Visual C++ nao sei fazer nada...mas digo ja que isso dos primos é no minimo basico  :|

//tks lycos :D

Hey, ja meteste a tag??

KTachyon

Quoteos numeros primos não são previsiveis, por isso terias de incluir uma library com todos os numeros primos até um certo ponto, se o c++ tem isso procura googla

Nem pensar... Só precisas de dividir sucessivamente por todos os números desde 2 até à sua raiz quadrada.



int isPrime(int num) {

   int sqroot = sqrt(num), i;



   if (num > 2 && num % 2 == 0) return 0

   

   for (i = 3; i <= sqroot; i+=2)

 if (num % i == 0) return 0;



   return 1;

}
My Q4 estimate: Macs: 5.89M; iPods: 4.19M; iPhones: 30.0M; iPads: 18.05M; Revenue: 37.00B; EPS: 9.50
AAPL Q3 result: Macs: 4.02M; iPods: 6.80M; iPhones: 26.0M; iPads: 17.04M; Revenue: 35.02B; EPS: 9.32

binarius

nao me levem a mal, principalmente por ser o meu primeiro post aqui.

mas nao acham que seria melhor dar apenas dicas do que fazer os trabalhos de casa dos outros? que tipo de programadores vamos ter se eles vêm á net para lhes fazerem os exercicios?

(sem ofensa para ninguem)

KTachyon

Epah, neste problema a dica é matemática. Por forma a optimizar o algoritmo uma pessoa apenas verifica os números até à raíz quadrada do número, e apenas os números impares, para tornar o processo o mais eficiente possível.

Isto pk, se um número não é primo, é composto, ou seja, multiplicando dois ou mais números primos pode obter-se esse número. Qualquer número impar não primo é divisível por um primo igual ou inferior à sua raíz quadrada. Logo:

Qualquer número não primo, ímpar entre 3 e 24 é divisível por 3.
Qualquer número não primo, ímpar entre 25 e 48 é divisível por 3 ou 5.
Qualquer número não primo, ímpar entre 49 e 120 é divisível por 3, 5 ou 7.

Se tiverem sempre isto em conta, vejam bem quanto tempo reduzem a processar o algoritmo.
My Q4 estimate: Macs: 5.89M; iPods: 4.19M; iPhones: 30.0M; iPads: 18.05M; Revenue: 37.00B; EPS: 9.50
AAPL Q3 result: Macs: 4.02M; iPods: 6.80M; iPhones: 26.0M; iPads: 17.04M; Revenue: 35.02B; EPS: 9.32

lycosman

Os números primos são aqueles que só são divisíveis por 1 ou por si mesmo, para a quem lhe estiver a faltar a memória.
Hooray for chainsaws :3


KTachyon

E números não primos são números compostos por números primos.
My Q4 estimate: Macs: 5.89M; iPods: 4.19M; iPhones: 30.0M; iPads: 18.05M; Revenue: 37.00B; EPS: 9.50
AAPL Q3 result: Macs: 4.02M; iPods: 6.80M; iPhones: 26.0M; iPads: 17.04M; Revenue: 35.02B; EPS: 9.32

KTachyon

E números não primos são números compostos por números primos:

4 = 2*2
6 = 2*3
8 = 2*2*2
9 = 3*3
10 = 2*5
...
15 = 3*5
21 = 3*7
25 = 5*5
33 = 3*11
...
49 = 7*7
...
121 = 11*11

Antes disso há sempre algum número inferior à sua raíz quadrada que o divíde.
My Q4 estimate: Macs: 5.89M; iPods: 4.19M; iPhones: 30.0M; iPads: 18.05M; Revenue: 37.00B; EPS: 9.50
AAPL Q3 result: Macs: 4.02M; iPods: 6.80M; iPhones: 26.0M; iPads: 17.04M; Revenue: 35.02B; EPS: 9.32