Informatică, întrebare adresată de roxanamariafaur, 9 ani în urmă

Un număr natural nenul se numește subperfect dacă este strict mai mic decât suma divizorilor
săi proprii (divizori naturali diferiți de 1 și de el însuși).
Exemplu: 12 este număr subperfect pentru că 12<2+3+4+6.
Se citesc două numere naturale a și b (2≤a câte un spațiu, în ordine descrescătoare, toate numerele subperfecte din intervalul [a,b].
Dacă în interval nu există astfel de numere, se afișează mesajul nu exista.
Exemplu: pentru a=10 și b=20 se afișează: 20 18 12
a) Scrieți, în pseudocod, algoritmul de rezolvare pentru problema enunțată. (10p.)
b) Menționați rolul tuturor variabilelor care au intervenit în algoritmul realizat la punctul a) și
indicați datele de intrare, respectiv datele de ieșire ale problemei enunțate

Răspunsuri la întrebare

Răspuns de blindseeker90
1
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;
}


Alte întrebări interesante