Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
E ae galera, precioso do seguinte: o usuário entra com um número no sistema e com uma função recursiva é verificado se o número é primo ou não.estou pesquisando na internet e fuçando no devcpp mas está complicado...se alguém puder ajuar fico muito agradecido... vlw...
é uma boa solução.mas eu preciso que seja feito com uma função recursiva.obrigado.
ow.. naum ha necessitad de se fazer uma funçao recursiva para akele exemplo...
uma funçao q testa se eh um numero primo apenas corre do 2 ate a raiz d n e verifica se n eh divisivel por algum destes...
naum tem mesmo necessidade d se criar uma funçao recursiva..
Eu necessito que seja feito com uma função recursiva.Podo não ser necessário pra você, mas pra mim é.Continuo tentando... Se alguém puder ajudar agradeço.Vlw...
Podo não ser necessário pra você, mas pra mim é.
:angry:
puts... foi mals entao..post a sua duvida...
Nah, não falei por mal, só estou falando que eu necessito que seja feito recursivamente... Pois é a situação.Desculpem pelo mal entendio. Me expressei mal. Peço desculpas...
Aqui tem um modo recursivo, está longe de ser o melhor.
int checadivisivel(int n, int i) { if(n<2 || !(n%i)) return 0; if(n==2 || i*i>=n) return 1; return checadivisivel(n,++i);}Lógico que você vai ter que chamar a função com mais um parâmetro, exemplo:checadivisivel(NUMERO, 2)
Neste caso ele está considerando que 2 não é primo...
Podemos fazer também com uma variável global (algo não aconselhável)
int i=2;int p=&i;int checadivisivel(int n) { if(n<2 || !(n%p)) return 0; if(n==2 || ii>=n) return 1; (p)++; return checadivisivel(n);}int main(...Só chamamos a função como:checadivisivel(NUMERO)
Como eu disse, funciona...
Mas não são bons métodos.
Ps: não revisei as funções, talvez hajam mais bugs.
#include <conio.h> #include <stdio.h>int primo(int a);void main(){ int a; printf ("digite um numero: \n"); scanf ("%d",&a); if (a<0) a=a-(2*a); primo(a)? printf (" eh primo !\n" ): printf (" nao eh primo !\n" ); getch(); }int primo(int B){ int i; if (b==0) return 0; if (b==1) return 1; for(i=2;b%i!=0&&b>i;i++) {} if(b==i) return 1; return 0;}
boa função para numeros primos..mas ainda naum vejo como ela se tornar recursiva...
porque primo e não "prima" :)Cypher :)
é porque geralmente "prima" dá p todo mundo..e "primo" soh da p ele mesmo e p 1..hhauhuahauhauhauhuahuahauhauha
por isso que o brasil não vai pra frente...o cara PRECISA de uma função recursiva pra calcula numeros primos, pq deve ser tarefa da faculdade (no máximo)...pq que desenvolvedor que precisa usar recursividade em um projeto dele...mas não sabe fazer (se esse for o trabalho dele)...vcs vao e entregam o codigo pronto pra ele...expliquem pra ele como faz...ensinem a procurar,...digam pra que ele poste o codigo dele...pra que vcs digam o que está errado...c a gente ficar dando o codigo pronto pro cara...ele nunca vai aprender a se virar...flws
A função básica é essa:
Pega o número n, verifica se ele é divisível por todos os números de 2 até a raiz quadrada de n. Se for divisível por algum então não é primo.
Já supondo que o usuário vai entrar com um número maior ou igual a 2 a função poderia ser essa:
/ n é o número e i é a variável auxiliar /for(i=2;ii<=n;++i) { if(!n%i) return 0; / não é primo /}return 1; / é primo */
Aí está a forma mais simples, sem tratamento de erros e provavelmente ficará bem lenta para números muito grandes.
Mas a idéia está aí.