0votos

numeros amigos en PL-SQL

por alvaro sanz llorente hace 1 año

.

Escribir una función que determine si dos números dados son amigos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
create or replace function numerosamigos2(numero1 in number,numero2 in number) return varchar as 
resultado varchar(30):=''; 
suma number(30):=0; 
suma2 number(30):=0; 
begin 
 
for p in 1..numero1  
loop 
if MOD(numero1,p)=0  and p!=numero1 THEN 
suma:=suma+p; 
end if; 
end loop; 
 
for p in 1..numero2 
loop 
if MOD(numero2,p)=0 and p!=numero2 THEN 
suma2:=suma2+p; 
end if; 
end loop; 
 
if suma=numero2 and suma2=numero1 then 
resultado:='son amigos'; 
else 
resultado:='no son amigos'; 
 
end if; 
return resultado; 
 
end; 
 
declare  
 
numerofinal1 number(30):=0; 
numerofinal2 number(30):=0; 
begin 
numerofinal1:=&dato; 
numerofinal2:=&dato2; 
dbms_output.put_line('los numeros '||numerofinal1||' y '||numerofinal2 ||' '|| numerosamigos2(numerofinal1,numerofinal2)); 
end; 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.