Tema Pbinfo Div
Tema Pbinfo Div
Tema Pbinfo Div
3
Suma dintre cei mai mici doi divizori proprii ai lui n
#include<iostream.h>
#include<conio.h>
int suma_min_div(int n){
int d, p, s = 0, cop = n, cntr = 0;
d = 2;
while(n>1){
p = 0;
while(n % d == 0){
n = n/d;
++p;
}
if(p > 0 && cntr <= 2){
s = s +d;
++cntr;
}
else{
break;
}
++d;
if(d*d > n && n > 1){
s = s + n;
break;
}
}
return s;
}
void main(){
int n;
cin >> n;
cout << suma_min_div(n);
getch();}
#include<iostream.h>
#include<conio.h>
int nr_din_par(int n){
int cntr = 0, d;
for(d = 2; d <= n; d = d +2){
if(n %d == 0){
++cntr;
}
}
return cntr;
}
void main(){
int n;
cin >> n;
cout << nr_din_par(n);
getch();}
#include<iostream.h>
#include<conio.h>
int patrat_min_div(int n){
int d, p, patrat = 0;
d = 2;
while(n>1){
p = 0;
while(n % d == 0){
n = n/d;
++p;
}
if(p > 0){
patrat = d*d;
break;
}
++d;
if(d*d > n && n > 1){
return 0;
}
}
return patrat;
}
void main(){
int n;
cin >> n;
cout << patrat_min_div(n);
getch();}
#include<iostream.h>
#include<conio.h>
int sumdiv_ogl_nr(int n){
int d, s = 0, ogl = 0;
while(n > 0){
ogl = ogl * 10 + n % 10;
n = n / 10;
}
for(d = 1; d *d < ogl; ++d)
if(ogl % d == 0)
s = s + d + ogl / d;
if(d * d == ogl)
s = s + d;
return s;
}
void main(){
int n, x, i, sum = 0;
cin >> n;
for(i = 1; i <= n; ++i){
cin >> x;
sum = sum + sumdiv_ogl_nr(x);
}
cout << endl << sum;
getch();}
#include<iostream.h>
#include<conio.h>
int cmmdc_n_nr(int x, int y){
int r;
while(y > 0){
r = x % y;
x = y;
y = r;
}
return x;
}
void main(){
int n, x, y, i, p;
cin >> n;
cin >> x;
for(i = 1; i < n; ++i){
cin >> y;
p = cmmdc_n_nr(x, y);
x = p;
}
cout << p;
getch();}
Covoare
#include<iostream.h>
#include<conio.h>
void covoare(int n, int m){
int ac = n * m, nrc, min;
if(n >= m)
min = m;
else
min = n;
nrc = ac / (min* min) + ac % (min*min);
cout << min << " " << nrc;
}
void main(){
int n, m;
cin >> n;
cin >> m;
covoare(n, m);
getch();}
Pavare
#include<iostream.h>
#include<conio.h>
#include<math.h>
void pavare(int n, int m){
int dmax, nrp;
if(sqrt(n) == floor(sqrt(n))){
nrp = m;
dmax = sqrt(n);
}
else if(sqrt(m) == floor(sqrt(m))){
nrp = n;
dmax = sqrt(m);
}
cout << dmax << " " << nrp;
}
void main(){
int n, m;
cin >> n;
cin >> m;
pavare(n, m);
getch();}
??????
#include<iostream.h>
#include<conio.h>
void n_nr_prime(int n){
int i = 1, d, p;
while(n > 0){
++i;
p = 1;
for(d = 2; d * d < i; ++d){
if(i % d == 0){
p = 0;
}
}
if(p == 1){
cout << i << " ";
}
--n;
}
}
void main(){
int n;
cin >> n;
n_nr_prime(n);
getch();}
Trunchiabil stanga
#include<iostream.h>
#include<conio.h>
#include<math.h>
int trunch_st(int n){
int ok, cop = n, cntr = 0, p, d, putere;
while(n > 0){
n = n / 10;
++cntr;
}
ok = 1;
p = 1;
while(cop > 0){
if(cop < 2)
ok = 0;
for(d = 2; d * d <= cop; ++d)
if(cop % d == 0){
ok = 0;
break;
}
putere = pow(10, cntr - p);
cop = cop % putere;
++p;
}
return ok;
}
void main(){
int n;
cin >> n;
cout << trunch_st(n);
getch();}
#include<iostream.h>
#include<conio.h>
int trei_div(int n){
int d, cntr = 0;
for(d = 2; d <= n; ++d)
if(n % d == 0)
++cntr;
if(cntr == 1)
return 1;
else
return 0;
}
void main(){
int a, b, i;
cin >> a >> b;
for(i = a ; i <= b ; ++i)
if(trei_div(i) == 1)
cout << i << " " ;
getch();}
#include<iostream.h>
#include<conio.h>
#include<math.h>
int prim(int n){
if(n < 2)
return 0;
for(int d = 2; d * d <= n; ++d)
if(n % d == 0)
return 0;
return 1;
}
int trei_div(int n){
int d, cntr = 0;
for(d = 2; d <= n; ++d)
if(n % d == 0)
++cntr;
if(cntr == 1)
return 1;
else
return 0;
}
int aproape_prim(int n){
int d, p, prod = 1, cop = n;
d = 2;
while(n > 1){
p = 0;
while(n % d == 0){
n= n / d;
++p;
}
if(p > 0)
prod = prod * d;
++d;
if(d * d > n && n > 1){
prod = prod * n;
break;
}
}
if(prod == cop)
return 1;
else
return 0;
}
void main(){
int n;
cin >> n;
if(prim(n) == 1)
cout << "prim ";
if(patrat_prim(n) == 1)
cout << "patrat prim ";
if(aproape_prim(n) == 1)
cout << "aproape prim ";
else if(prim(n) == 0 && patrat_prim(n) == 0 && aproape_prim(n) == 0)
cout << "compus";
getch();}
#include<iostream.h>
#include<conio.h>
int max_dimp(int n){
int d, max = 0;
for(d = 1; d <= n; ++d)
if(n % d == 0 && d % 2 != 0 && d > max)
max= d;
return max;
}
void main(){
int n, x, i;
cin >> n;
for(i = 1; i <= n; ++i){
cin >> x;
cout << max_dimp(x) << endl;
}
getch();}
Factori primi
#include<iostream.h>
#include<conio.h>
#include<math.h>
int prod_fp(int n){
int d, p, prod = 1;
d = 2;
while(n > 1){
p = 0;
while(n % d == 0){
n= n / d;
++p;
}
if(p > 0)
prod = prod * d;
++d;
if(d * d > n && n > 1){
prod = prod * n;
break;
}
}
return prod;
}
void main(){
int n, m, ok = 0;
cin >> n >> m;
if(prod_fp(n) == prod_fp(m))
ok = 1;
cout << ok;
getch();}
Curat
#include<iostream.h>
#include<conio.h>
#include<math.h>
int curat(int n){
int ogl = 0, cop = n, cntr = 0, nr;
while(n > 0){
ogl = ogl*10 + n % 10;
n = n / 10;
++cntr;
}
for(int i = 1; i <= cntr; ++i)
nr = 9 * pow(10, i - 1) + 9 * pow(10, i - 2);
if(nr - cop == ogl)
return 1;
else
return 0;
}
void main(){
int n, x;
cin >> n;
for(int i = 1; i <= n; ++i){
cin >> x;
cout << " " << curat(x) << endl;
}
getch();}
Nr alternant
#include<iostream.h>
#include<conio.h>
#include<math.h>
int nr_alt(int n){
int ok = 1;
while(n >= 10){
if(n%10%2 == (n/10)%10%2){
ok= 0;
break;
}
n = n / 10;
}
return ok;
}
void main(){
int n;
cin >> n;
cout << nr_alt(n);
getch();}
Nr intershcimbabil???????
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main(){
int n, cop, i, cntr = 0, cop2, p1, pi;
cin >> n;
cop = n;
cop2 = n;
while(n >= 10){
++cntr;
n = n / 10;
}
++cntr;
p1 = pow(10,cntr - 1);
for(i = cntr; i >=1; --i){
cop2 = cop;
pi = pow(10,cntr - i);
cop2 = (((cop2/pi)%10)*p1 + cop2 % p1)*10 + n;
cout << cop2 << endl;
}
getch();}