Sunteți pe pagina 1din 8

Afisarea unui nr cu 2 zecimale exacte, fara rotunjire

#include <iomanip> //pt fixed & setprecision


double x;
cout<<fixed<<setprecision(2)<<floor(x*100)/100;

verificare p perf

sol 1
if(sqrt(n)==floor(sqrt(n)))

sol 2

m=sqrt(n);
if(m*m==n)

prelucrare cifre

cin>>n;
while(n)
{
c=n%10;
s+=c;(pt suma)
n/=10;
}

oglinditul

cin>>n;
aux=n;
while(aux)
{
c=aux%10;
on=on*10+c;
aux/=10;
}

Sa se stearga din numarul n toate cifrele impare; Construirea unui nou numar x cu
cifrele
pare ale lui n, in ordine de la stanga la dreapta.

cin>>n;
x=0;
p=1;

while (n)
{
c=n%10;
if (c%2==0)
{
x=c*p + x;
p=p*10;
}
n/=10;
}
cout<<x;

numarare divizori

O(n)

cin>n;

nr=0;
for (d=1; d<=n; d++)
if (n%d==0) nr++;
cout>>nr;

O(rad_n)

cin>>n;
nr=0;
for (d=1; d*d<n; d++)
if (n%d==0) nr+=2;
if (d*d==n) nr++;

cout<<nr;

nr prim

cin>>n;
ok=1;
if(n<2) ok=0;
for (d=2; d*d<=n; d++)
if (n%d==0)
{
ok=0;
break;
}
if(ok) cout<<”DA”;
else cout<<”NU”;

cmmdc(a,b) si cmmmc(a,b)

a) prin scaderi succesive

cin>>a>>b;
while(a!=b)
if (a>b) a-=b;
else b-=a;
cout<<a;
b) algoritmul lui Euclid

a=2, b=0
cin>>a>>b;
p=a*b;
while (b)
{
r=a%b;
a=b;
b=r;
}
cout<<a<<endl; // cmmdc(a,b)
cout<<p/a<<endl; // cmmmc(a,b)

5) Sirul lui Fibonacci – Algoritm fundamental

P1) Sa se determine termenul de rang n al sirului.

cin>>n;
f1=f2=1;
if (n==1 || n==2) cout<<1;
else
{
for(i=3; i<=n; i++)
{
f3=f1+f2;
f1=f2;
f2=f3;
}
cout<<f3;
}
P2) Sa se verifice daca numarul x este termen in sirul lui Fibonacci

cin>>x;
f1=f2=1;
while (f2<x)
{
f3=f1+f2;
f1=f2;
f2=f3;
}
if (f2==x) cout<<”DA”;
else cout<<”NU”;

6) Descompunerea unui numar natural in factori primi – Algoritm fundamental

O(n)
P1) Afisarea factorilor primi si a puterilor la care apar in descompunere
(complexitate O(n))
cin>>n;
f=2;
while (n>1)
{
p=0;
while (n%f==0)
{
n=n/f;
p++;
}
if (p) cout<<f<<” ”<<p<<’\n’;
f++;
}
P2) Numarul de factori primi din descompunere (complexitate O(n))
cin>>n;
f=2;
while (n>1)
{
if ( n % f==0)
{
nr++;
while (n%f==0) n=n/f;
}
f++;
}

(Complexitate O√n)

P1) Afisarea factorilor primi si a puterilor la care apar in descompunere


cin>>n;
f=2;
while (n>1 && f*f<=n)
{
p=0;
while (n%f==0)
{
n=n/f;
p++;
}
if (p) cout<<f<<” ”<<p<<’\n’;
f++;
}
if(n>1) cout<<n<<” ”<<1<<’\n’;

SAU

cin>>n;
f=2;
while (n>1)
{
p=0;
while (n%f==0)
{
n=n/f;
p++;
}
if (p) cout<<f<<” ”<<p<<’\n’;
f++;
if (f*f>n) f=n;
}

P2)

cin>>n;
f=2;
while(f*f<=n)
{
if(n%f==0)
{
nr++;
while(n%f==0) n/=f;
}
f++;
}
if(n>1) nr++;

secventa nr pare(testam pt un nr)

cin>>n;
for (i=1; i<=n; i++)
{
cin>>x;
if (x%2==0) l++;
else l=0;
if (l>lmax) lmax=l;
}
cout<<lmax;

secventa nr egale + nr din care e formata cea mai din stanga(testam pt 2 nr)

cin>>n;
l=1;
cin>>x;
for (i=2; i<=n; i++)
{
cin>>y;
if (x==y) l++;
else l=1;
if (l>lmax) // pt cea mai din dreapta >=
{
lmax=l;
r=y;
}
x=y;
}
cout<<lmax<<" "<<r;

#include <bits/stdc++.h>

using namespace std;

int a[101],b[101],c[202],i,n,m,k,j;
int main()
{
cin>>n;
cin>>m;
for(i=1; i<=n; i++)

cin>>a[i];

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

cin>>b[i];

i=j=1;
while (i<=n && j<=m)
if (a[i]<b[j] && a[i]%2!=b[j]%2) c[++k]=a[i++];
else c[++k]=b[j++];
while (i<=n) c[++k]=a[i++];
while (j<=m) c[++k]=b[j++];

for(i=1;i<=k;i++)
if(c[i]%2!=c[i+1]%2)
cout<<c[i]<<" ";
return 0;
}

#include <bits/stdc++.h>

using namespace std;

ifstream f("nr1.txt");
ifstream g("nr2.txt");

int a[10000001],b[100000001],n,i,m,j,c[200000002],k;
int main()
{
f>>n;
for(i=1; i<=n; i++)

f>>a[i];

g>>m;
for(j=1; j<=m; j++)

g>>b[j];

i=j=1;
while (i<=n && j<=m)
if(a[i] == b[j])
c[++k] = a[i], i++, j++;
else
if(a[i] < b[j])
i++;
else
j++;

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

cout<<c[i]<<" ";

return 0;
}

#include <bits/stdc++.h>

using namespace std;

ifstream f("bac.txt");
int a[101],b[101],n,i,m,j,k,nr;
int main()
{
f>>n>>m;

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

f>>a[i];

for(j=1; j<=m; j++)

f>>b[j];

i=j=1;
nr=m;
while (i<=n && j<=m)
if (a[i]<b[j]) i++;
else if(a[i] > b[j]) j++;
else i++,nr--;

cout<<nr;

return 0;
}

S-ar putea să vă placă și