Documente Academic
Documente Profesional
Documente Cultură
)
Dou numere naturale cu proprietatea c
suma divizorilor fiecrui numr
(neconsidernd n acest caz numrul nsui
ca divizor) este egal cu cellalt numr plus
1, se numesc numere quasi-amiabile sau
numere logodite.
Pe fiecare linie a fiierului text numere.txt se
gsesc cte 2 numere naturale. tiind c 2
numere situate pe o linie a fiierului formeaz
o pereche, s se afieze la ecran toate
perechile de numere quasi-amiabile din fiier.
Exemplu: Dac fiierul numere.txt conine:
25 18
48 75
195 140
260 310
atunci la ecran se vor afia perechile:
48 75
195 140
#include<iostream>
#include<fstream>
using namespace std;
int s=0;
int verificare(int a)
{
for(int i=1; i<a; i++)
{
if(a%i==0)
s=s+i;
}
}
int main()
{
int a=1, b, p=0;
ifstream f("numere.txt");
while(a!=p)
{
p=a;
f>>a>>b;
s=0;
verificare(a);
if(s==b+1)
cout<<a<<" "<<b<<endl;
}
}
):
ENUNT:
Un numr n se numete rotund dac are un
numr egal de cifre de 0 i 1 n reprezentarea
sa matematic n baza 2. De exemplu,
numrul 184 este un numr rotund deoarece
reprezentat n baza 2 conine 4 cifre de 0 i 4
cifre de 1. Numrul 120 nu este rotund
deoarece reprezentat n baza 2 conine 3 cifre
de 0 i 4 cifre de 1.
a) Scriei definiia complet a unui
subprogram baza, cu trei parametri, care
primete prin
intermediul parametrului n un numr natural
nenul de cel mult 9 cifre; subprogramul
returneaz prin intermediul celui de-al doilea
parametru, x, numrul de cifre de 0 din
reprezentarea n baza2 a numrului n, iar
prin intermediul celui de-al treilea
parametru, y,
numrul de cifre de 1 din reprezentarea n
baza 2 a numrului n.
Exemplu: pentru n=28 subprogramul va
returna prin parametrul x valoarea2, iar prin
parametrul y
valoarea3.
b) Fiierul text atestat.in conine, pe o singur
linie, cel mult 100 de numere naturale
nenule, de cel puin dou cifre i cel mult 9
cifre fiecare, numerele fiind separate prin cte
un spaiu. Scriei programul C++ care creeaz
fiierul text atestat.out i scrie n el, pe prima
linie, separate prin cte un spaiu, toate
numerele din fiierul text atestat.in care sunt
rotunde. Dac nu exist niciun numr rotund,
atunci n fiierul text atestat.out se va scrie
Nu exist!.
REZOLVARE:
a)#include <iostream>
using namespace std;
int rotund(int n,int x,int y)
{
x=0;
y=0;
while(n!=0)
{
if(n%2==0)
{
x++;
n=n/2;
}
else
{
y++;
n=n/2;
}
}
cout<<"In reprezentarea sa in baza 2,
numarul are "<<x<<" cifre de 0 si "<<y<<"
cifre de 1."<<endl;
if(x==y)
cout<<"Numarul este rotund.";
else
cout<<"Numarul nu este rotund.";
}
int main()
{
int n,x,y;
cout<<"n=";
cin>>n;
rotund(n,x,y);
return 0;
}
Enunt :
a).Scrieti definitia completa a unui
subprogram cmmdc, cu doi parametri, care
primeste prin intermediul parametrilor x si y
doua numere naturale de cel mult patru cifre