Descompunerea în factori primi

#include <iostream>

using namespace std;

int main()
{
    unsigned n,f=2,p;
    cin>>n;
    while(n!=1)
    {
        p=0;
        while(n%f==0)
        {
            n/=f;
            ++p;
        }
        if(p>0)cout<<f<<" "<<p<<endl;
        ++f;
    }
    return 0;
}

Verificare pătrat perfect

#include <iostream>
using namespace std;

int main()
{
    unsigned n,ok=1,f=2,p;
    cin>>n;
    while(n!=1&&ok==1)
    {
        p=0;
        while(n%f==0)
        {
            n=n/f;
            ++p;
        }
        if(p%2!=0)ok=0;
        ++f;
    }
    if(ok==1)cout<<"da";
    else cout<<"nu";
    return 0;
}

Scrierea unui număr ca sumă de termeni ai șirului lui Fibonacci

#include <iostream>

using namespace std;

int main()
{
    long n,a,b,c;
    cin>>n;
    while(n!=0)
    {
        a=0;b=1;
        while(a+b<=n)
        {
            c=a+b;
            a=b;
            b=c;
        }
        n=n-c;
        cout<<c<<" ";
    }
    return 0;
}

Afișarea tuturor termenilor șirului lui Fibonacci mai mici decât un număr x

#include <iostream>

using namespace std;

int main()
{
    long x,a,b,c,i,k=1,p=0;
    cin>>x;
    if(x==1)cout<<"1 1";
    else if(x==2)cout<<"1 1 2";
    else
    {
        cout<<"1 1 ";
        a=1;
        b=1;
        p=a+b;
        while(p<x)
        {
            p=a+b;
            a=b;
            b=p;
            ++k;
        }
        a=1;
        b=1;
        for(i=3;i<=k;++i)
        {
            c=a+b;
            cout<<c<<" ";
            a=b;
            b=c;
        }
    }
    return 0;
}

Obținerea celui de-al n-lea termen din șirul lui Fibonacci

#include <iostream>

using namespace std;

int main()
{
    long n,i,a,b,c;
    cin>>n;
    if(n==1||n==2)cout<<"1";
    else
    {
        a=1;
        b=1;
        for(i=3;i<=n;++i)
        {
            c=a+b;
            a=b;
            b=c;
        }
       cout<<c;
    }
    return 0;
}

Deplasări la stânga (eliminări)

Scrieți un program care să elimine toate aparițiile numărului x din vectorul v(v cu n elemente).

#include <iostream>

using namespace std;

int main()
{
    int x,v[101],i,j,n;
    cin>>n;
    for(i=1;i<=n;++i)cin>>v[i];
    cin>>x;
    for(i=1;i<=n;++i)
        if(v[i]==x)
    {
        for(j=i;j<=n-1;++j)v[j]=v[j+1];
        --n;--i;
    }
    for(i=1;i<=n;++i)cout<<v[i]<<" ";
    return 0;
}

Maxime și minime multiple

1.Minim

#include <iostream>
#include <climits>

using namespace std;

int main()
{
    int v[101],min1=INT_MAX,min2=INT_MAX,i,n;
    cin>>n;
    for(i=1;i<=n;++i)cin>>v[i];
    for(i=1;i<=n;++i)
    {
        if(v[i]<min1)
        {
            min2=min1;
            min1=v[i];
        }
        else if(v[i]<min2)min2=v[i];
    }
    cout<<min1<<" "<<min2;
    return 0;
}

2.Maxim

#include <iostream>
#include <climits>

using namespace std;

int main()
{
    int v[101],max1=INT_MIN,max2=INT_MIN,i,n;
    cin>>n;
    for(i=1;i<=n;++i)cin>>v[i];
    for(i=1;i<=n;++i)
    {
        if(v[i]>max1)
        {
            max2=max1;
            max1=v[i];
        }
        else if(v[i]>max2)max2=v[i];
    }
    cout<<max1<<" "<<max2;
    return 0;
}

Dacă avem nevoie de prea multe valori maxime sau minime, în loc să luăm mai multe variabile vom ordona vectorul (des)crescător și vom afișa numărul de maxime/minime necesar.

Maxime și minime simple

1.Minim

#include <iostream>
#include <climits>

using namespace std;

int main()
{
    int v[101],min=INT_MAX,i,n;
    cin>>n;
    for(i=1;i<=n;++i)
    {
        cin>>v[i];
        if(v[i]<min)min=v[i];
    }
    cout<<min;
    return 0;
}

2.Maxim

#include <iostream>
#include <climits>

using namespace std;

int main()
{
    int v[101],max=INT_MIN,i,n;
    cin>>n;
    for(i=1;i<=n;++i)
    {
        cin>>v[i];
        if(v[i]>max)max=v[i];
    }
    cout<<max;
    return 0;
}