tag:blogger.com,1999:blog-7257063320040818311.post8723713123883480957..comments2023-06-06T08:37:07.159-07:00Comments on Desarrollo y apuntes: Algoritmo recursivo en Java para descomponer un número en sus factores primoswilmerw22http://www.blogger.com/profile/04655476579482081776noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-7257063320040818311.post-76448665382598653842013-09-08T21:29:45.704-07:002013-09-08T21:29:45.704-07:00Es recursivo cuando se utiliza para realizar una l...Es recursivo cuando se utiliza para realizar una llamada a una función desde la misma función.<br />Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7257063320040818311.post-20213373919888725322013-09-08T17:49:35.259-07:002013-09-08T17:49:35.259-07:00tienes un while en una funcion recursiva ?!?!?!?!?...tienes un while en una funcion recursiva ?!?!?!?!?!<br /><br />public class Ej4<br />{<br /> ArrayList nums=new ArrayList();<br /> public void task(int num)<br /> {<br /> int lim=(int)(Math.sqrt(num));<br /> if(Esprimo(num))<br /> {<br /> nums.add(1);<br /> nums.add(num);<br /> }<br /> else<br /> {<br /> task(num,lim,2);<br /> }<br /> prin();<br /> }<br /> private void task(int num,int lim,int div)<br /> { <br /> if(div<=lim)<br /> {<br /> if(Esprimo(num))<br /> {<br /> nums.add(num);<br /> <br /> <br /> }<br /> else<br /> {<br /> if(num%div==0)<br /> {<br /> nums.add(div);<br /> task(num/div,lim,div);<br /> <br /> }<br /> else<br /> {<br /> task(num,lim,++div);<br /> }<br /> }<br /> }<br /><br /> }<br /> private boolean Esprimo(int num, int div)<br /> {<br /> boolean res=true;<br /> if(div>1&&res==true)<br /> {<br /> if((num%div)==0)<br /> {<br /> res=false;<br /> }<br /> else<br /> {<br /> res= Esprimo(num,div-1);<br /> }<br /> }<br /> return res;<br /> }<br /> boolean Esprimo(int num)<br /> {<br /> int aux;<br /> aux = (int)(Math.sqrt(num));<br /> boolean resultado = true;<br /> return Esprimo(num, aux);<br /> }<br /> public void agregar(int num)<br /> {<br /> nums.add(num);<br /> }<br /> public void prin()<br /> {<br /> for(int i=0;i<nums.size();i++)<br /> {<br /> System.out.println(nums.get(i));<br /> }<br /> }<br /> <br /> <br /> public static void main(String args[])throws IOException<br /> {<br /> BufferedReader scan=new BufferedReader(new InputStreamReader(System.in));<br /> Ej4 oz=new Ej4();<br /> int num=Integer.parseInt(scan.readLine());<br /> <br /> oz.task(num);<br /><br /> }<br />}<br />Anonymousnoreply@blogger.com