Răspuns :
citeste a;
citeste b;
pentru x=b;x>=a;x=x-1 executa
s=0
pentru i=2,i<=x/2,i++ executa
daca x mod i=0 atunci
s=s+i;
sfarsit daca
sfarsit pentru
daca x<s atunci
scrise x
sfarsit daca
sfarsit pentru
sfarsit
b) a,b sunt variabile folosite pentru capetele intervalului
x:folosit pentru iteratia intervalului, fiecare numar din acel interval
s:folosit pentru adunarea divizorilor numarului x diferiti de 1 si el insusi
i:folosit pentru iterarea elementelor intre 2 si x/2 pentru descoperirea divizorilor lui x
Codul C++ mai jos
#include <iostream>
using namespace std;
int main(){
int a,b,x,s,i,exista_subp=0;
cout<<"Introduceti capetele intervalului(mai mic primul):";
cin>>a>>b;
for(x=b;x>=a;x--){
s=0;
for(i=2;i<=x/2;i++){
if(x%i==0){
s=s+i;
}
}
if(x<s){
exista_subp=1;
cout<<x<<" ";
}
}
if(exista_subp==0){
cout<<"Nu exista";
}
return 0;
}
citeste b;
pentru x=b;x>=a;x=x-1 executa
s=0
pentru i=2,i<=x/2,i++ executa
daca x mod i=0 atunci
s=s+i;
sfarsit daca
sfarsit pentru
daca x<s atunci
scrise x
sfarsit daca
sfarsit pentru
sfarsit
b) a,b sunt variabile folosite pentru capetele intervalului
x:folosit pentru iteratia intervalului, fiecare numar din acel interval
s:folosit pentru adunarea divizorilor numarului x diferiti de 1 si el insusi
i:folosit pentru iterarea elementelor intre 2 si x/2 pentru descoperirea divizorilor lui x
Codul C++ mai jos
#include <iostream>
using namespace std;
int main(){
int a,b,x,s,i,exista_subp=0;
cout<<"Introduceti capetele intervalului(mai mic primul):";
cin>>a>>b;
for(x=b;x>=a;x--){
s=0;
for(i=2;i<=x/2;i++){
if(x%i==0){
s=s+i;
}
}
if(x<s){
exista_subp=1;
cout<<x<<" ";
}
}
if(exista_subp==0){
cout<<"Nu exista";
}
return 0;
}