Patr�cia,
O programa abaixo n�o mostra num applet, mas est� funcionando.
Waldomiro.
-------------------------------------------------------------------
import javax.swing.JOptionPane;
public class Perfeitos
{
public static void main( String args[] )
{
String msg="";
for (int num=1; num<=1000; num++)
{
int sum=0;
for(int i=1; i<=num-1; i++)
if (num%i==0) sum+=i;
if (num == sum)
{
msg += "\n" + num + " eh um inteiro perfeito. Fatores: ";
for(int i=1; i<=num-1; i++)
if (num%i==0)
msg += i + " ";
}
}
JOptionPane.showMessageDialog( null, msg,
"Resultado", JOptionPane.PLAIN_MESSAGE );
System.exit( 0 );
}
}
-----Mensagem original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Enviada em: domingo, 21 de outubro de 2001 13:50
Para: [EMAIL PROTECTED]
Assunto: [java-list] D�vida URGENTE!!!!!!!!!
oi , estou precisando de uma ajudinha , se for poss�vel !!!
� o seguinte , preciso resolver o seguinte exerc�cio :
Diz - se que um n�mero inteiro � um n�mero perfeito , se a soma de seus
fatores , incluindo o 1 � igual ao pr�prio n�mero . Por exemplo , 6 � um
n�mero
perfeito , porque 6=1+2+3 . Escreva um m�todo perfect que determina se
seu
par�metro number � um n�mero perfeito . Utilize esse m�todo em um applet
que
determina e exibe todos os n�meros perfeitos entre 1 a 1000 . exiba ,
para cada
n�mero seus fatores . O resultado deve ser mostrado em JTextArea.
O problema � o seguinte , consegui o algoritimo em VBScript , mas n�o
sei
passar p/ Java . e n�o sei o que � um m�todo perfect !!!!
Aqui vai o algoritimo em VBScript:
for x=1 to 1000
if perfect(x) then
Msgbox X&"� um numero perfeito
end if
next
function prfect(numero)
dim numero_primo
dim quociente
dim soma_divisor
soma_divisor=2
numero_primo=0
quociente=numero
do while quociente>1
if(quocienteMODnumero_primo=0)them
quociente=quociente/numero_primo
soma_divisor=soma_divisor+numero_primo
else
numero_primo=BuscaProximoNumeroPrimo(numero_primo)
end if
loop
soma_divisor=soma_divisor+1
if clng(soma_divisor)=clng(numero)then
perfect=true
else
perfect=false
end if
end function
function BuscaProximoNumeroPrimo(numero_primo_inicial)
dim prox_numero_primo
dim k
dim qtd_divisoes
dim_eh_primo
eh_primo=false
prox_numero_primo=numero_primo_inicial+1
do while eh_primo=false
qtd_divisoes=0
for k=1 to prox_numero_primo
if prox_numero_primoMODk=0 then
qtd_divisoes=qtd_divisoes+1
end if
next
'se houver apenas duas divisoes , significa que o numerofoi dividido
'apenas por 1 e por ele mesmo , logo ele � primo
ifqtd_divisoes=2 then
BuscaProximoNumeroPrimo=prox_numero_primo
eh_primo=true
else
'se n�o for primo , testar o pr�ximo numero
prox_numero_primo =prox_numero_primo+1
end if
loop
end function
Por favor me responda , caso vc n�o possa me ajudar e conhe�a algu�m que
possa
me fale , desde j� agrade�o !
Patricia!!!
------------------------------------------------------
Esta mensagem foi enviada usando o WebMail Canbras.Net
http://www.canbrasnet.com.br
------------------------------ LISTA SOUJAVA
----------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para
[EMAIL PROTECTED]
------------------------------------------------------------------------
-
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------