# data[].attributes.headline
#387 Suma divizorilor impari ai unui număr

# data[].attributes.subject
#387 Suma divizorilor impari ai unui număr

# data[].attributes.body
#include <iostream>

using namespace std;

int main()
{
    int n, d=0, s=0;
    cin>>n;
    if(n==1) s=1;
    else
    {
        for(d=1;d*d<n;d++)
            if(n%d==0)
        {
            if(d%2!=0)
                    s+=d;
            if(n/d %2!=0)
                    s+=n/d;
        }
        if(d*d==n && d%2!=0)
            s+=d;
    }
    cout<<s;
    return 0;
}

# data[].attributes.headline
#388 Numărul divizorilor pari ai unui număr

# data[].attributes.subject
#388 Numărul divizorilor pari ai unui număr

# data[].attributes.body
#include<iostream>
using namespace std;

int main( )
{
int n,d,nr=0;
cin>>n;
for(d=1;d*d<n;d++)
    if(n%d==0)
    {
      if(d%2==0)
        nr++;
      if(n/d%2==0)
          nr++;
    }
 if(d*d==n)
      nr++;

cout<<nr;
return 0;
}

# data[].attributes.headline
#1568 Media aritmetică a divizorilor unui număr

# data[].attributes.subject
#1568 Media aritmetică a divizorilor unui număr

# data[].attributes.body
#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    int n,d,nr;
    float s;
    cin>>n;
    s=1+n;
    nr=2;
    for(d=2;d<=n/2;d++)
        if(n%d==0)
        {
            nr++;
            s=s+d;
        }
    s=s/nr;
    cout << fixed<<setprecision(2)<< s << endl;
    return 0;
}

# data[].attributes.headline
#389 Se citesc două numere naturale a și b. Să se determine cel mai mic și cel mai mare număr din intervalul [a,b] cu număr maxim de divizori pari şi numărul maxim de divizori pari.

# data[].attributes.subject
#389 Se citesc două numere naturale a și b. Să se determine cel mai mic și cel mai mare număr din intervalul [a,b] cu număr maxim de divizori pari şi numărul maxim de divizori pari.

# data[].attributes.body
#include <iostream>

using namespace std;

int main()

{

int a,b,NRD=0,MIN,MAX,nr,i,d;

cin>>a>>b;

for(i=a;i<=b;i++)

{

nr=0;

//Alg de determinare a divizorilor lui i

for(d=1;d*d<i;d++)

if(i%d==0)

{

if(d%2==0)

nr++;

if(i/d%2==0)

nr++;

}

if(d*d==i && d%2==0)

nr++;

if(nr>NRD)

{

NRD=nr;

MIN=i;

MAX=i;

}else

if(nr==NRD)

MAX=i;

}

cout<<NRD<<" "<<MIN<<" "<<MAX;

return 0;

}

# data[].attributes.headline
#3663 Se dă un număr natural n. Calculați pătratul celui mai mic divizor propriu al său.

# data[].attributes.subject
#3663 Se dă un număr natural n. Calculați pătratul celui mai mic divizor propriu al său.

# data[].attributes.body
#include <iostream>

using namespace std;

int main()

{

int n,d,dmin,ok=0;

cin>>n;

for(d=2;d*d<n && ok==0;d++)

if(n%d==0)

{

ok=1;

dmin=d;

}

if(d*d==n&&ok==0)

dmin=d;

cout<<dmin*dmin;

return 0;

}

# data[].attributes.headline
Se citesc două numere naturale a și b. Să se determine cel mai mic și cel mai mare număr din intervalul [a,b] cu număr maxim de divizori pari şi numărul maxim de divizori pari.

# data[].attributes.subject
Se citesc două numere naturale a și b. Să se determine cel mai mic și cel mai mare număr din intervalul [a,b] cu număr maxim de divizori pari şi numărul maxim de divizori pari.

# data[].attributes.body
include<iostream>

#include <cmath>

using namespace std;

long long max_d1=0 ,max_d=0, min_d=10 ,a,b,n,d,nr_dp;

int main()

{

cin>>a>>b;

for(n=a;n<=b;n++)

{

nr_dp=0 ;

for(d=1;d<sqrt(n);d++)

if(n%d==0)

{

if(d%2==0)

nr_dp++;

if(n/d%2==0)

nr_dp++;

}

if(d*d==n && d%2==0)

nr_dp++;

if(nr_dp>max_d1)

{

max_d1=nr_dp;

max_d=n;

min_d=n;

}

else if(nr_dp==max_d1)

max_d=n;

}

cout<<nr_dp<<" "<<min_d<<" "<<max_d;

return 0;

}

# data[].attributes.headline
#4330 Se dă un număr natural n. Calculați suma dintre cei mai mici doi divizori proprii ai lui n.

# data[].attributes.subject
#4330 Se dă un număr natural n. Calculați suma dintre cei mai mici doi divizori proprii ai lui n.

# data[].attributes.body
#include <iostream>

using namespace std;

int main()

{

int n,d,dmin1=-1,dmin2=-1;

cin>>n;

for(d=2;d<=n/2 && dmin2==-1;d++)

if(n%d==0)

if(dmin1==-1)

dmin1=d;

else

if(dmin2==-1)

dmin2=d;

cout<<dmin1+dmin2;

return 0;

}

# data[].attributes.headline
#66 Să se scrie un program care să determine numărul de cifre ale unui număr natural citit de la tastatură.

# data[].attributes.subject
#66 Să se scrie un program care să determine numărul de cifre ale unui număr natural citit de la tastatură.

# data[].attributes.body
#include <iostream>
using namespace std;
int main()
{
    int x,nr=0;
    cin>>x;
    if(x==0) cout<<1;
    else{
        while(x)
        {
            nr++;
            x/=10;
        }
      cout<<nr;
        }
    return 0;
}

# data[].attributes.headline
#4329  Se dă un număr natural n. Calculați suma dintre cel mai mic și cel mai mare divizor propriu al lui n.

# data[].attributes.subject
#4329  Se dă un număr natural n. Calculați suma dintre cel mai mic și cel mai mare divizor propriu al lui n.

# data[].attributes.body
#include <iostream>

using namespace std;

long long n,d,a,b,i,ok;

int main ()

{

cin>>n;

{

for(i=2;i<=n/2&& ok==0;i++)

if(n%i==0)

{

a=i;

b=n/i;

ok=1;

}

cout<<b+a;

return 0;

}

}

# data[].attributes.headline
#69 Să se scrie un program care să determine oglinditul unui număr natural citit de la tastatură.

# data[].attributes.subject
#69 Să se scrie un program care să determine oglinditul unui număr natural citit de la tastatură.

# data[].attributes.body
#include <iostream>

using namespace std;

int main()

{

int n, og=0, c;

cin>>n;

while(n!=0)

{

c=n%10;

n=n/10;

og=og*10+c;

}

cout<<og;

return 0;

}

# data[].attributes.headline
#65 Să se scrie un program care să determine produsul cifrelor impare ale unui număr natural citit de la tastatură.

# data[].attributes.subject
#65 Să se scrie un program care să determine produsul cifrelor impare ale unui număr natural citit de la tastatură.

# data[].attributes.body
#include <iostream>
using namespace std;
int main()
{
    int x,cif,p=1,ok=0;
    cin>>x;
    while(x)
    {
        cif=x%10;
        if(cif%2!=0)
        {
            p*=cif;
            ok=1;
        }
        x/=10;
    }
    if(ok)
    cout<<p<<" ";
    else
        cout<<-1;

    return 0;
}

# data[].attributes.headline
#3979 Se dă un număr natural nenul n. Calculați suma cifrelor lui n care sunt mai mari sau egale cu 3 și mai mici sau egale cu 7.

# data[].attributes.subject
#3979 Se dă un număr natural nenul n. Calculați suma cifrelor lui n care sunt mai mari sau egale cu 3 și mai mici sau egale cu 7.

# data[].attributes.body
#include <iostream>
using namespace std;
int main()
{
    int n, c, s=0;
    cin>>n;
    while (n!=0)
    {
       c=n%10;
       n=n/10;
       if (c>=3 && c<=7)
       s=s+c;
    }
    cout <<s;
    return 0;

}

# data[].attributes.headline
#3078 Scrieți un program care citește un număr natural n și o cifră k. Programul va calcula produsul P al cifrelor lui n diferite de cifra k.

# data[].attributes.subject
#3078 Scrieți un program care citește un număr natural n și o cifră k. Programul va calcula produsul P al cifrelor lui n diferite de cifra k.

# data[].attributes.body
#include <iostream>
using namespace std;
int main()
{
    int x,cif,k,p=1,ok=0;
    cin>>x>>k;
    while(x)
    {
        cif=x%10;
        if(cif!=k)
            {
                p*=cif;
                ok=1;
            }

        x/=10;
    }
    if(ok)
    cout<<p;
    else cout<<0;
    return 0;
}

# data[].attributes.headline
#68 Să se scrie un program care să determine cea mai mare cifră a unui număr natural citit de la tastatură.

# data[].attributes.subject
#68 Să se scrie un program care să determine cea mai mare cifră a unui număr natural citit de la tastatură.

# data[].attributes.body
#include <iostream>
using namespace std;
int main()
{
    int x,Max=0,cif;
    cin>>x;
    while(x)
    {
        cif=x%10;
        if(cif>Max)
            Max=cif;
            x/=10;
    }
    cout<<Max;
    return 0;
}

# data[].attributes.headline
#3665 Se dă un număr natural n. Determinaţi cea mai mare cifră pară a sa. Dacă numărul nu are cifre pare se va afişa numărul 10.

# data[].attributes.subject
#3665 Se dă un număr natural n. Determinaţi cea mai mare cifră pară a sa. Dacă numărul nu are cifre pare se va afişa numărul 10.

# data[].attributes.body
#include <iostream>
using namespace std;
int main()
{
    long long n,par=-1,c;
    cin>>n;
    if(n==0) par=0;
    else
    while(n>0)
    {
        c=n%10;
        if(c%2==0 && c>par)
            par=c;
        n=n/10;
    }
    if(par==-1)
        cout<<10;
    else
        cout<<par;
    return 0;
}

# data[].attributes.headline
#3667 Se dau n numere naturale. Determinaţi câte dintre ele au cifra maximă un număr impar.

# data[].attributes.subject
#3667 Se dau n numere naturale. Determinaţi câte dintre ele au cifra maximă un număr impar.

# data[].attributes.body
#include <iostream>
using namespace std;
int main()
{
    int n,x,i,Max,cif, nr=0;
    cin>>n;
    for(i=1;i<=n;i++)
    {
        cin>>x;
        Max=0;
        while(x)
        {
            cif=x%10;
            if(cif>Max)
                Max=cif;
            x/=10;
        }
        if(Max%2!=0)
            nr++;
    }
    cout<<nr;
    return 0;
}

# data[].attributes.headline
#3905 Scrieți un program care citește un număr natural n și care să calculeze și să afișeze suma S a tuturor numerelor obținute prin rearanjarea cifrelor lui n.

# data[].attributes.subject
#3905 Scrieți un program care citește un număr natural n și care să calculeze și să afișeze suma S a tuturor numerelor obținute prin rearanjarea cifrelor lui n.

# data[].attributes.body
#include <iostream>
using namespace std;
long long fact(int n)
{
    long long p=1;
    for(int i=1;i<=n-1;i++)
        p=p*i;
    return p;
}
int main()
    { long long n,y,t=0,i=1,c, zero=0;
      long long s=0,s1=0,s2=0,sum=0,m;
         cin>>n;
      y=n; c=n;m=n;

    while (y!=0)
      {     if(y%10==0)
                zero=1;
            y=y/10;t++;}
        t=fact(t); //(nr cifre -1)!
   while (n!=0)
   {s1=(n%10)*t+s1;
    n=n/10;}
   while (c!=0)
   {s=s+s1*i;
     i=i*10;
     c=c/10;}
cout<<s;
return 0;
    }

# data[].attributes.headline
#3664 Se dau n numere naturale. Determinaţi câte cifre pare şi câte cifre impare se află în total în cele n numere.

# data[].attributes.subject
#3664 Se dau n numere naturale. Determinaţi câte cifre pare şi câte cifre impare se află în total în cele n numere.

# data[].attributes.body
#include <iostream>

using namespace std;

int main()

{ int n,c,v[11];;

long long i=0,p=0;

cin>>n;

for (int j=1;j<=n;j++)

{

cin>>v[j];

if(v[j]==0) p++;

while (v[j]!=0)

{

c=v[j]%10;

v[j]=v[j]/10;

if (c%2==0)

p++;

else

i++;

}

}

cout<<p<<" "<<i;

return 0;

}

# data[].attributes.headline
#942 Se dă un număr natural format din cifrele 2 sau 3. Aflaţi cifra care apare de cele mai multe ori în scrierea numărului .

# data[].attributes.subject
#942 Se dă un număr natural format din cifrele 2 sau 3. Aflaţi cifra care apare de cele mai multe ori în scrierea numărului .

# data[].attributes.body
#include<iostream>
using namespace std;
int main ()
{
    int n,nr2=0,nr3=0,c;
     cin>>n;
while(n!=0)
{
  c=n%10;
    n=n/10;
    if(c==3)
        nr3++;
    else nr2++;
}
   if(nr2>nr3)
       cout<<2;
    else
       if(nr3>nr2)
         cout<<3;
        else
        cout<<2<<' '<<3;
    return 0;
}

# data[].attributes.body
1.     #375 Se citește un număr natural n. Să se determine cel mai mic număr prim, strict mai mare decât n.

Exemplu: Pentru n=20 se va afișa 23.

2.     #406 Se dă un șir cu n numere naturale. Determinați câte dintre ele sunt prime și au suma cifrelor un număr prim.

Exemplu: Pt. n=6 și șirul 83, 36, 53, 401, 90, 7 se va afișa 3.

# data[].attributes.body
1.     Se citește un număr natural n. Să se verifice dacă oglinditul numărului este număr prim.

Exemplu: Pt. n=31 se va afișa DA deoarece 13 este număr prim.

2.     #405 Se dă un șir cu n numere naturale. Determinați suma tuturor cifrelor numerelor prime din șir.

Exemplu: Pt. n=6 și șirul 83, 36, 53, 401, 90, 7 se va afișa 31.

# data[].attributes.body
1.     Se citește un număr natural n. Să se verifice dacă numărul format din cifrele sale impare este număr prim.

Exemplu: Pt. n=36218 se va afișa DA deoarece 31 este număr prim.

2.     #404 Se dă un șir cu n numere naturale. Determinați câte dintre ele sunt prime și au suma cifrelor un număr prim.

# data[].attributes.body
1.     Se citește un număr natural. Să se verifice dacă este aproape prim.

Exemplu: Pt. n=35 se va afișa DA deoarece poate fi scris ca produs de două numere prime distincte. (35=5*7).

2.     #44 Să se scrie un program care citește două numere naturale a și b și determină câte numere prime sunt în intervalul închis determinat de numerele citite.

Exemplu: Pt a=10 și b=20 se va afișa 4.

# data[].attributes.headline
#77 Să se scrie un program care să determine ultima cifră pară a unui număr natural citit de la tastatură.

# data[].attributes.subject
#77 Să se scrie un program care să determine ultima cifră pară a unui număr natural citit de la tastatură.

# data[].attributes.body
#include <iostream>
#include <stdio.h>
using namespace std;
int dev_functie(int n)
{
    int cif, ok = ;
    if (n==0)
    {
        cif=0;
        ok=true;
    }
    else
    while(n!=0)
    {
        cif = n%10;
        if(cif%2==0)
        {
            ok = true;
            break;
        }
        n = n/10;
    }

# data[].attributes.body
1. Se citește un număr natural. Să se verifica dacă suma cifrelor sale este număr prim. Exemplu: Pt. n=58 se va afișa DA.

2. Se dă un număr natural n, apoi un șir de n numere naturale. Să se calculeze numărul obținut prin adunarea primei cifre a celor n numere citite și să se verifice dacă este prim. Exemplu: Pt. n=5 și șirul de numere 23, 456, 78, 96, 108 se va afișa DA (2+4+7+9+1=23).

# data[].attributes.body
#include <iostream>

using namespace std;

int n,d,prim;

int main()

{cin>>n;

prim=1;

if(n<2)

prim=0;

for(d=2;d*d<=n;d++)

if(n%d==0)

prim=0;

if(prim==0)

cout<<"NU";

else

cout<<"DA";

return 0;

}

# data[].attributes.headline
Se citeste un numar natural.Sa se verifice daca suma cifrelor sale este un numar prim

# data[].attributes.subject
Se citeste un numar natural.Sa se verifice daca suma cifrelor sale este un numar prim

# data[].attributes.body
#include <iostream>

using namespace std;

int n,d,prim,s,cif;

int main()

{cin>>n;

prim=1;

while(n>0)

{cif=n%10;

n=n/10;

s=s+cif;

}

if(s<2)

prim=0;

for(d=2;d*d<=s;d++)

if(s%d==0)

prim=0;

if(prim==0)

cout<<"NU";

else

cout<<"DA";

return 0;

}

# data[].attributes.headline
 Se citește un număr natural n. Să se verifice dacă numărul format din cifrele sale impare este număr prim.Exemplu: Pt. n=36218 se va afișa DA deoarece 31 este număr prim.

# data[].attributes.subject
 Se citește un număr natural n. Să se verifice dacă numărul format din cifrele sale impare este număr prim.Exemplu: Pt. n=36218 se va afișa DA deoarece 31 este număr prim.

# data[].attributes.body
#include <iostream>

int n,d,ni=0 ,c ,prim=1, p=1;

using namespace std;

int main()

{

cin>>n;

while(n!=0)

{

c=n%10;

n=n/10;

if(c%2==1)

{

ni=c*p+ni;

p=p*10;

}

}

if(ni<2)

prim=0;

if(ni%2==0 && ni!=2)

prim=0;

for(d=2;d*d<=ni;d++)

if(ni%d==0)

prim=0;

if(prim==0)

cout<<"NU";

else

cout<<"DA";

return 0;

}

# data[].attributes.headline
Se citeste un nr natural n. Sa se verifice daca oglinditul numarului este nr prim. Exemplu: Pt n=31 se va afisa DA deoarece 13 este nr prim.

# data[].attributes.subject
Se citeste un nr natural n. Sa se verifice daca oglinditul numarului este nr prim. Exemplu: Pt n=31 se va afisa DA deoarece 13 este nr prim.

# data[].attributes.body
#include <iostream>

using namespace std;

int main()

{

int n,d,og=0,prim=1;

cin>>n;

while(n!=0)

{

og=og*10+n%10;

n/=10;

}

if(og<2)

prim=0;

for(int d=2;d*d<=og;d++)

if(og%d==0)

prim=0;

if(prim==1)

cout<<"DA";

else

cout<<"NU";

return 0;

}

# data[].attributes.headline
#44 Să se scrie un program care citește două numere naturale a și b și determină câte numere prime sunt în intervalul închis determinat de a și b.

# data[].attributes.subject
#44 Să se scrie un program care citește două numere naturale a și b și determină câte numere prime sunt în intervalul închis determinat de a și b.

# data[].attributes.body
#include <iostream>

using namespace std;

int main()

{

int a,b,i,d,prim,nr=0,aux;

cin>>a>>b;

if(a>b)

{

aux=a;

a=b;

b=aux;

}

for(i=a;i<=b;i++)

{

prim=1;

if(i<2)

prim=0;

if(i%2==0&&i!=2)

prim=0;

for(d=3;d*d<=i;d++)

if(i%d==0)

prim=0;

if(prim==1)

nr++;

}

cout<<nr;

return 0;

}

# data[].attributes.headline
#379 Se citește un număr natural. Să se verifice dacă este aproape prim.

# data[].attributes.subject
#379 Se citește un număr natural. Să se verifice dacă este aproape prim.

# data[].attributes.body
#include <iostream>

using namespace std;

int main()

{

int n,d,a,b,prima,primb,ok=0;

cin>>n;

for (a=2;a*a<n&&ok==0;a++)

if (n%a==0)

{

b=n/a;

prima=1;

if (a%2==0 &&a!=2)

prima=0;

for (d=3; d*d<=a;d=d+2)

if (a%d==0)

prima=0;

if(prima==1)

{

primb=1;

if(b%2==0&&b!=2)

primb=0;

for(d=3;d*d<=b;d=d+2)

if (b%d==0)

primb=0;

if (primb==1)

{

cout<<"DA";

ok=1;

}

}

}

if (ok==0)

cout<<"NU";

return 0;

}

# data[].attributes.headline
#406 Se dă un șir cu n numere naturale. Determinați câte dintre ele sunt prime și au suma cifrelor un număr prim.

# data[].attributes.subject
#406 Se dă un șir cu n numere naturale. Determinați câte dintre ele sunt prime și au suma cifrelor un număr prim.

# data[].attributes.body
#include <iostream>

using namespace std;

int main()

{int n,x,i,d,prim,nr=0,s,y,c;

cin>>n;

for(i=1;i<=n;i++)

{

cin>>x;

y=x;

s=0;

prim=1;

if(x<2)

prim=0;

if(x%2==0&&x!=2)

prim=0;

for(d=3;d*d<=x;d+=2)

if(x%d==0)

prim=0;

if(prim==1)

{

while(x!=0)

{

c=x%10;

x=x/10;

s=s+c;

}

if(s<2)

prim=0;

if(s%2==0 && s!=2)

prim=0;

for(d=3;d*d<=s;d=d+2)

if(s%d==0)

prim=0;

if(prim==1)

nr++;

}

}

cout<<nr;

return 0;

}

# data[].attributes.headline
Se citește un număr natural n. Să se descompună în factori primi.

# data[].attributes.subject
Se citește un număr natural n. Să se descompună în factori primi.

# data[].attributes.headline
#406 Se dă un șir cu n numere naturale. Determinați câte dintre ele sunt prime și au suma cifrelor un număr prim.

# data[].attributes.subject
#406 Se dă un șir cu n numere naturale. Determinați câte dintre ele sunt prime și au suma cifrelor un număr prim.