cmmdc

CEL MAI MARE DIVIZOR COMUN – ALGORITMUL LUI EUCLID (metoda impartirilor succesive)

#include<iostream.h>
void main()
{
int a,b,r;
cout<<“a=”;cin>>a;
cout<<“b=”;cin>>b;
r=a%b;
while(r)
{
a=b;
b=r;
r=a%b;
}
cout<<“cmmdc: “<<b;
}

CEL MAI MARE DIVIZOR COMUN – ALGORITMUL LUI NICOMAHUS (metoda scaderilor repetate)

#include<iostream.h>
void main()
{
int a,b,r;
cout<<“a=”;cin>>a;
cout<<“b=”;cin>>b;
while(a!=b)
if(a>b) a=a-b;
else b=b-a;
cout<<“cmmdc: “<<b;
}

{joscommentenable}

numarul de aparitii a unei cifre intr-un numar

Scrieti un program care afiseaza numarul de aparitii a unei cifre x intr-un numar n;de ex daca citim n=2232 si x=2 se afiseaza numarul 3.

#include<iostream.h>
void main()
{
int n,n1,nr,x;
cout<<“n=”;cin>>n;
cout<<“x=”;cin>>x;
nr=0;
n1=n;
do
{
if(n1%10==x) nr++;
n1=n1/10;
}while(n1);
cout<<“cifra “<<x<<” apare de “<<nr<<” ori”;
}

{joscommentenable}

Trecerea unui numar din baza 10 in baza b

Sa se scrie un program tcare realizeaza trecerea unui numar din baza 10 in baza b, unde b se citeste de la tastatura

#include<iostream.h>
void main()
{
long n,n1,b,aux,nr;
aux=nr=0;
cout<<“n=”;cin>>n;
cout<<“b=”;cin>>b;
n1=n;
do
{
aux=aux*10+n1%b;
n1=n1/b;
}
while(n1!=0);
cout<<aux<<endl;;
do
{
nr=nr*10+aux%10;
aux=aux/10;
}
while(aux);
cout<<“numarul “<<n<<” in baza “<<b<<” este: “<<nr;
}

{joscommentenable}

Numar prim

Verificati daca un numar natural x diferit de 0 si 1, este prim sau nu

#include<iostream.h>
void main()
{
int x,d,ok;
cout<<“x=”;cin>>x;
ok=1;d=2;
while(d<=x/2 && ok)
{
if(x%d==0)
ok=0;
d++;
}
if(ok) cout<<“nr prim”;
else cout<<“nr nu este prim”;
}

{joscommentenable}

Sirul lui Fibonacci

Sa se afiseze primii n termeni ai sirului lui Fibonacci;sirul are primii doi termeni egali cu 1 si fiecare din urmatorii termeni este egal cu suma dintre precedentul si ante-precedentul

#include<iostream.h>
void main()
{
int i,n;
long f,p,a;
cout<<“n=”;cin>>n;
p=a=1;
cout<<a<<” “<<p<<endl;
for(i=3;i<=n;i++)
{
f=p+a;
cout<<f<<endl;
a=p;
p=f;
}
}

{joscommentenable}