Documente Academic
Documente Profesional
Documente Cultură
1
Algoritmi elementari 2016
DIVIZORII PRIMI AI UNUI NUMĂR
Afișarea divizorilor primi ai unui număr Afișarea divizorilor primi ai unui număr-II
cin >>nr;
f= 2; cin >>nr;
do{ g=0; f= 2;
while (nr%f= =0) while(nr! =1)
{ nr=nr/f ; g= 1;} { if (nr%f= =0) cout<< f<< endl;
if (g= =1) cout<< f<< endl; while (nr%f= =0)
f++; nr=nr/f ;
}while(nr! =1); f++; }
Suma divizorilor primi ai unui număr Suma exponențílor divizorilor primi ai unui
număr
cin >>nr;
f= 2; s=0; cin >>nr;
while(nr! =1) f= 2; s=0;
{ p=0; while(nr! =1)
while (nr%f= =0) { p=0;
{ nr=nr/f ; p++;} while (nr%f= =0)
if (p! =0) s=s+f; { nr=nr/f ; p++;}
f++; } s=s+p;
cout<<s; f++; }
Suma divizorilor primi ai unui număr-var II Suma exponențílor divizorilor primi ai unui
cin >>nr; s=0; număr-var II
for( i =2; i<=sqrt(nr) ; i++) cin >>nr; s=0;
{ p=0; for( i =2; i<=sqrt(nr) ; i++)
while (nr%i= =0) { p=0;
{ p++; nr=nr/i;} while (nr%i= =0)
if(p!=0)s=s+i;} { p++; nr=nr/i;}
cout<<s; if(p!=0)s=s+p;}
cout<<s;
Cel mai mic divizor prim al unui număr Cel mai mare divizor prim al unui
dat număr dat
cin >>nr; f= 2; cin >>nr; f= 2;
while(nr! =1) while(nr! =1)
{ while(nr%f= =0) { if (nr%f= =0) max=f;
{ min=f; break;} while(nr%f= =0)
f++; } nr=nr/f;
cout<<min; f++; }
cout<<max;
2
Algoritmi elementari 2016
Suma cifrelor unui număr Suma cifrelor impare ale unui număr
s=0; s=0;
while (n!=0) while (n!=0)
{ s=s+n%10; { if(n%2==1) s=s+n%10;
n=n/10; } n=n/10; }
cout<<s; cout<<s;
Formarea unui număr din cifrele pare Formarea unui număr din cifrele
ale unui număr dat, cifrele fiind în impare ale unui număr dat, cifrele fiind
aceeași ordine ca în numărul dat . Ex: în ordine inversă față de ordinea din
x=34568 , xnou=468 numărul dat . Ex: x=34568 , xnou=864
3
Algoritmi elementari 2016
Ștergerea cifrei c dintr-un număr dat. Înlocuirea cifrei c1 cu cifra c2. Ex:
Ex: x=3245268, c=2, se obține x=3245218, c1=2, c2=1 se obține
xnou=34568 xnou=3145118
s = 1+2+3+.....+n
s= 1!+2!+3!+......+n!
int n, i,s=0;
cout<<” Intr. valoare pt n :”; cin >>n;
for( i = 1;i<=n;i++) cin >>n;
s=s+i; for( i = 1;i<=n;i++)
cout<<”suma primelor”<<n<<”numere { p=p*i;
naturale este:”; s=s+p ;}
cout<< s; cout<<s;
cin>>n;
t1=1; t2=1;
for( i = 3;i<=n;i++)
{ t3=t1+t2; cout<<t3<<” ”; t1=t2; t2=t3; }
Conversia unui număr din baza 10 în Conversia unui număr din baza 10 în
baza 2 baza q
5
Algoritmi elementari 2016
PRELUCRAREA A N NUMERE
Primul/Penultimul/ Verificarea unei Generarea celei mai lungi secvențe de
Afișarea numerelor care Suma numerelor care Numărul de numere care
îndeplinesc o condiție îndeplinesc o condiție îndeplinesc o condiție
Ultimul număr care proprietăți de către elemente consecutive care îndeplinesc o
îndeplinește o condiție toate cele n numere condiție
Afișarea numerelor Suma numerelor Numărul de numere care Primul număr par Toate numerele au Câte elemente conține cea mai lungă
prime palindrom din șir au suma cifrelor un număr parități diferite secvență de elemente valori prime
s=0; par cin>>n; cin>>n>>x; consecutive
cin>>n; cin>>n; k=0; for( i =1; i<=n ; i++) cin>>n;
for( i =1; i<=n ; i++) for( i =1; i<=n ; i++) cin>>n; { cin>>x; //citescșiprimulnumărdin lc=lmax=0;
{ cin>>x; { cin>>x; for( i =1;i<=n;i++) if(x%2==0) k++; trecele nnumere for( i =1; i<=n ; i++)
ok=1; aux=x; ninv=0; { cin>>x; if (k==1){p=x; ok=1;//consider că toate { cin>>x;
for( j =2; j<=x/2 ; j++) while (aux!=0) aux=x; s=0; break;} numerele îndeplinesc ok=1;
if (x%j= =0) {ninv=ninv*10+aux%10; while (aux!=0) } condiția for( j =2; j<=x/2 ; j++)
ok=0; aux=aux/10; } {s=s+aux%10; cout<<p; for( i =1; i<n ; i++) if (x%j= =0) ok=0;
6
Algoritmi elementari 2016
if(ok==1) if(x==ninv) aux=aux/10; } { cin>>y; if(ok==1)
cout<<x<<” ”;} s=s+x ;} if(s%2==0) if(x%2==y%2) lc++;
cout<<s ; k++ ;} {ok=0; elseif(lc>lmax) {lmax=lc;
cout<<k; break;} lc=1;} }
x=y;} if(lc>lmax) {lmax=lc;}
if(ok==1) //în cazul când ultimul element din șir face
cout<<”da”; parte din cea mai lungă secvență de elemente
else ce îndeplinesc condiția cerută
cout<<”nu”; cout<<lmax;
Afișarea numerelor Suma numerelor din șir Numărul de numere care Ultimul și penultimul Toate numerele sunt Câte elemente conține cea mai lungă
care au numai cifre prime cu un număr k au nr de cifre pare egal cu număr perfect pare secvență de elemente crescătoare
pare citit de la tastatură nr de cifre impare cin>>n; consecutive
cin>>n; s=0; cin>>n; k=0; cin>>n; u=p=0; ok=1;//consider că toate cin>>n>>x;
for( i =1; i<=n ; i++) cin>>n>>k; for( i =1; i<=n ; i++) for( i =1; i<=n ; i++) numerele îndeplinesc lc=1; lmax=0;
{ cin>>x; for( i =1; i<=n ; i++) { cin>>x; { cin>>x; s=0; condiția for( i =1; i<n ; i++)
aux=x; { cin>>x; aux=x; for( j =2; j<=x/2 ; j++) for( i =1; i<=n ; i++) { cin>>y;
ki=0;//nrcifrelorimpare a=x; b=k; ki=0;kp=0; if (x%j= =0) { cin>>x; if(y<x)
while (aux!=0) while (a!=b) while (aux!=0) s=s+j; if(x%2!=0) lc++;
{if(aux%2 !=0) {if(a>b) {if(aux%2 !=0) if(s+1==x) {ok=0; elseif(lc>lmax) {lmax=lc;
ki++; a=a-b; ki++; {p=u; break;} lc=1;}
aux=aux/10; } else b=b-a; } elsekp++; u=x;} } x=y; }
if(ki==0) if(a==1) aux=aux/10; } } if(ok==1) if(lc>lmax) {lmax=lc;}
cout<<x<<” ”;} s=s+x ;} if(ki==kp) cout<<p<<” ”<<u; cout<<”da”; cout<<lmax;
cout<<s ; k++ ;} else
cout<<k<<” ”; cout<<”nu”;
7
Algoritmi elementari 2016
for( i =a; i<=b ; i++) while(n!=0) while(ok==0)
{ aux=i; m=0; { d=0; { d=0;
while (aux!=0) for( j =2;j<=k/2;j++) for(j =2;j<=k/2;j++)
{ if(aux%10>m) if (k%j= =0) if (k%j= =0)
m=aux/10; d++; d++;
aux=aux/10; } if(d==2) if(d==0)
if(m%2==1) {cout<<k<<” ”; {cout<<k<<” ”;
cout<<i<<” ”;} n--;} ok=1;}
k++;} k++;}