broj vo broj
#include <stdio.h>
#include <stdlib.h>
int broj_vo_broj(int br1,int br2)
{
    if(br1==0)
    {
        return 0;
    }
    int broj1 = br1;
    int broj2=br2;
    while ((broj1%10)==(broj2%10)&&broj2!=0)
    {
        broj1/=10;
        broj2/=10;
    }
    
    if (broj2==0)
    {
        return 1 + broj_vo_broj(broj1,br2);
    }
   
        return 0 + broj_vo_broj(br1/10,br2);
    
}

int main()
{
    int n;
    scanf("%d",&n);
    while (n-- > 0)
    {
        int a,b;
        scanf ("%d%d",&a,&b);
        printf ("%d\n",broj_vo_broj(a,b));

    }
    
    return 0;
}

deficitni br.
#include <stdio.h>
#include <stdlib.h>

int suma (int broj, int del)
{
    if(broj==0 || del==0)
    {
        return 0;
    }

    if(broj%del==0)
    {
        return del + suma(broj,del-1);
    }

    else
    {
        return 0 + suma(broj,del-1);
    }
}

int proverka(int broj)
{
    if (broj > suma(broj,broj-1))
    {
        return 1;
    }
    else
    {
        return 0;
    }
}

int main()
{
    int i,n;
    scanf("%d",&n);
    int niza[n];

    for(i=0;i<n;i++)
    {
        scanf("%d",&niza[i]);
    }

    for(i=0;i<n;i++)
    {
        if(proverka(niza[i]))
        {
            printf("%d\n",niza[i]);
        }
    }

    return 0;
}
armstrongov br.
#include <stdio.h>
#include <stdlib.h>

int stepen(int broj, int broj2)
{
    if(broj2==0)
    {
        return 1;
    }

    return broj * stepen(broj,broj2-1);
}

int proverka(int broj)
{
    int br=broj;
    int brr=broj;
    int st=0;
    int suma=0;

    while(broj!=0)
    {
        broj/=10;
        st++;
    }

    while(br!=0)
    {
        int cifra=br%10;
        suma+=stepen(cifra,st);
        br/=10;
    }
    if(brr==suma)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}

int main()
{


   int n,i;
   scanf("%d",&n);
   int niza[n];



   for(i=0;i<n;i++)
   {
       scanf("%d",&niza[i]);
   }

   for(i=0;i<n;i++)
   {
       if(proverka(niza[i]))
       {
           printf("%d\n",niza[i]);
       }
   }
    return 0;
}
fibonachi
#include <stdio.h>
#include <stdlib.h>
int fibonaci_niza(int broj)
{
    if(broj==0)
    {
        return 1;
    }
    if (broj==1)
    {
        return 1;
    }

    return fibonaci_niza(broj-1) + fibonaci_niza(broj-2);
}

void fibonachiev_broj(int broj,int brojac)
{

    if(fibonaci_niza(brojac) == broj)
    {
        printf ("DA\n");
        return;
    }

    if (fibonaci_niza(brojac)>broj)
    {
        printf ("NE\n");
        return;
    }

    return fibonachiev_broj(broj,brojac+1);

}

int main ()
{
    int n;
    scanf ("%d",&n);
    while (n-- > 0)
    {
        int broj;
        scanf ("%d",&broj);
        fibonachiev_broj(broj,0);
    }

    return 0;
}
ogledalni broevi
#include <stdio.h>
#include <stdlib.h>

void ogledalno(int niza[],int dolzina, int i)
{
    if(dolzina/2==i)
    {
        if((dolzina%2)!=0)
        {
            niza[dolzina/2]+=niza[dolzina/2];
        }
        return;
    }

    int temp = niza[i] + niza[dolzina - i - 1] ;
    niza[i] = niza[dolzina - i - 1] + niza[i];
    niza[dolzina - i - 1] = temp;

    ogledalno(niza,dolzina,i+1);
}

int main()
{
    int n;
    scanf ("%d",&n);
    int i,niza[n];
    for(i=0; i < n; i++)
    {
        scanf ("%d",&niza[i]);
    }

    for(i = 0; i < n-1; i++)
    {
        printf ("%d ",niza[i]);
    }

    printf ("%d", niza[n-1]);

    printf ("\n");

    ogledalno(niza,n,0);

    for (i = 0; i < n-1; i++)
    {
        printf ("%d ",niza[i]);
    }

    printf ("%d",niza[n-1]);

    return 0;
}
mat nek
#include <stdio.h>
#include <stdlib.h>



int main()
{
    int n, m;

    printf("Vnesi kolkava ti e matricata? ");

    scanf("%d %d", &n, &m);

    int originalna[n * m];
    int mnozena[n * m];

    int i, j;

    for (i = 0; i < n; i++) {
            for (j = 0; j < m; j++) {
                printf("[%d][%d](%d) = ", i, j, i * n + j);
                scanf("%d", &originalna[i * n + j]);
            }

            printf("\n");
    }

    mnozena[n * m - 1] = originalna[n * m - 1]; //za da ne ja  cepka 8

    for (i = 0; i < n * m - 1; i++) {
        int min = originalna[i + 1];

        for (j = i + 1; j < n * m - 2; j++) {
            if (originalna[j] < min) {
                min = originalna[j];
            }
        }

        mnozena[i] = originalna[i] * min;
    }

    for (i = 0; i < n * m; i++) {
        printf("%d\n", mnozena[i]);
    }

    return 0;
}
parni cifri
#include <stdio.h>
int parni(int broj)
{
    if (broj==0)
    {
        return 0;
    }
    int cifra=broj%10;
    if((cifra%2)==0)
    {
        int a=1+parni(broj/10);
        printf("%d",cifra*2);
        return a;
    }
    return 0 + parni(broj/10);
}
int main ()
{
    int n,broj;
    scanf("%d", &n);
    while(n-- > 0)
    {
        scanf("%d",&broj);
        printf(" : %d\n", parni(broj));
    }
    return 0;
}
proverka dali broevi se isti
#include <stdio.h>
#include <stdlib.h>
int suma(int broj)
{
    if(broj==0)
    {
        return 0;
    }
    int cifra=broj%10;
    return cifra + suma(broj/10);
}

void proverka (int a, int b)
{
    if(a==b)
    {
        printf ("DA\n");
        return;
    }
    else
    {
        printf ("NE\n");
        return;
    }
}


int main()
{
    int a,b;
    scanf ("%d%d", &a,&b);
    int broj1 = suma(a);
    int broj2 = suma(b);

    proverka(broj1,broj2);

    return 0;
}
dalie e prost
#include <stdio.h>
#include <stdlib.h>

int proizvod(int broj)
{
    if(broj==0)
    {
        return 1;
    }
    int cifra=broj%10;
    return cifra * proizvod(broj/10);
}

void dali_e_prost(int broj)
{
    int i,znamence=0;
    for(i=2; i < broj; i++)
    {
        if((broj%2)==0)
        {
            znamence=1;
            break;
        }
    }

    if(znamence==0)
    {
        printf ("Proizvodot %d od cifrite na brojot %d e prost broj",proizvod(broj),broj);
        return ;
    }
    else
    {
     printf ("Proizvodot %d od cifrite na brojot %d ne e prost broj",proizvod(broj),broj);
    }
}


int main()
{
    int broj;
    scanf ("%d", &broj);
    dali_e_prost(broj);

    return 0;
}
maximum
#include <stdio.h>
#include <stdlib.h>
int maximum(int brojac)
{
    int broj;
    scanf ("%d",&broj);

    if(brojac<=1)
    {
        return broj;
    }

    int drugo_brojce= maximum(brojac-1);

    if(broj>drugo_brojce)
    {
        return broj;
    }
    else
    {
        return drugo_brojce;
    }

}

int main()
{
    int n;
    scanf ("%d",&n);
    int i;
    for (i=0;i<n;i++)
    {
        printf ("%d\n",maximum(3));
    }
    return 0;
}
stepen
#include<stdio.h>
#include<math.h>

int stepen(int i, int j)
{
    if (j==0)
    {
    return 1;
    }

    return i * stepen (i,j-1);

}

int main()
{
	//vasiot kod ovde

    int n;
    int i,j;

    scanf ("%d",&n);

    double nadvoreshno = 0;
    for (i=1;i<=n;i++)
    {
        double vnatreshno = 0;
    for (j=0; j <= i;j++)
    {
        vnatreshno += sqrt((double) stepen(i,j));
    }

        nadvoreshno += vnatreshno;
    }

    printf("%.2f", nadvoreshno);

    return 0;
}
mali cifri
#include <stdio.h>
#include <stdlib.h>

int mali_cifri(int a)
{
    if(a==0)
    {
        return 0;
    }

    int cifra=a%10;

    if(cifra<5)
    {
        int broenje= 1 + mali_cifri(a/10);
        printf ("%d",cifra);
        return broenje;
    }

        return 0 + mali_cifri(a/10);

}
int main()
{
    int n;
    scanf ("%d",&n);
    while (n-- > 0)
    {
        int broj;
        scanf ("%d",&broj);
        printf (" : %d\n",mali_cifri(broj));

    }
    return 0;
}
silen broj, nabildan
#include <stdio.h>
#include <stdlib.h>

int faktoriel (int broj)
{
    if(broj==1)
    {
        return 1;
    }

    return broj * faktoriel(broj-1);
}

int proverka(int broj)
{
    int br=broj;
    int suma=0;

    while(broj!=0)
    {
        int cifra=broj%10;
        suma+=faktoriel(cifra);
        broj/=10;

    }

    if(br==suma)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}

int main()
{
    int n,i;
    scanf("%d",&n);
    int niza[n];

    for(i=0;i<n;i++)
    {
        scanf("%d",&niza[i]);
    }

    for(i=0;i<n;i++)
    {
        if(proverka(niza[i]))
        {
            printf("%d\n",niza[i]);
        }
    }
    return 0;
}
broj vrakja broj formiran od cif. na nepar. pozii
#include <stdio.h>
#include <stdlib.h>

int rekurzija(int broj,int brojac)
{
    if (broj==0)
    {
        return 0;
    }

    if ((brojac%2)!=0)
    {
        int cifra= broj%10;
        int rek= rekurzija(broj/10,brojac+1);
        printf ("%d",cifra);
        return rek;
    }
    else
    {
        return 0 + rekurzija(broj/10,brojac+1);
    }
}

int main()
{
    int a;
    scanf ("%d", &a);
    rekurzija(a,0);
    return 0;
}
pomal minimum
#include<stdio.h>
#include<math.h>
int min(int a[],int poc,int kraj,int minim){
	if(poc>kraj)
    {
    	return minim;
    }
    if(a[poc]<minim)
    {
    	return min(a,(poc+1),kraj,a[poc]);
    }
    else return min(a,poc+1,kraj,minim);
}
int minim(int a,int b)
{
	if(a<b)
    {
    	return a;
    }
    else return b;
}
int main(){
    int n,m,a[100],b[100],c[100],mim,i,j,k;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
    	scanf("%d",&a[i]);
    }
    scanf("%d",&m);
    for(j=0;j<m;j++)
    {
    	scanf("%d",&b[j]);
    }
    mim=minim(n,m);
    for(i=0;pow(2,i)<=mim;i++)
    {
    	k=pow(2,i);
        c[i]=minim(min(a,0,n/k-1,9999),min(b,0,m/k-1,9999));
    }
    for(i=0;pow(2,i)<=mim;i++)
    {
    	printf("%d ",c[i]);
    }
return 0;
}
#include <stdio.h>
int dvojnik(int a,int n)
{
    if(a==0)
        return 0;
    if (n%2==0&&a%10%2==0)
        return 10*dvojnik(a/10,n+1);
    return a%10+10*dvojnik(a/10,n+1);
}
int main()
{
    int n,i;
    int niza[100];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&niza[i]);
    }
    for(i=0;i<n;i++)
    {
        if(dvojnik(niza[i],1)&&dvojnik(niza[i],1)!=niza[i])
        printf("%d ",dvojnik(niza[i],1));
    }
    return 0;
}
funkcii suma neparni
#include <stdio.h>
#include <stdlib.h>

int suma_neparni(int broj, int brojac)
{
    if(broj==0)
    {
        return 0;
    }

    if(brojac%2!=0)
    {
        return broj%10 + suma_neparni(broj/10,brojac+1);
    }
    else
    {
        return 0 + suma_neparni(broj/10,brojac+1);
    }
}

int main()
{
    int a;
    scanf ("%d",&a);
    printf ("%d",suma_neparni(a,1));
    return 0;
}
stepeni na dva broja
#include <stdio.h>
#include <stdlib.h>

void stepen(int a, int b)
{
    if(a==1)
    {
        printf ("DA\n");
        return;
    }
    if((a%b)==0)
    {
      stepen((a/b),b);
      return;
    }
    else
    {
        printf("NE\n");
        return;
    }
}

int main()
{
    int n;
    scanf("%d",&n);
    while (n-- > 0)
    {
        int a, b;
        scanf ("%d%d",&a,&b);
        stepen(a,b);
    }
    return 0;
}
minbroj
int minbroj(int a, int b) {
    if (a == 0 || b == 0) {
        return 0;
    }

    int ca = a % 10;
    int cb = b % 10;

    if (ca > cb) {
        return cb + 10 * minbroj(a / 10, b / 10);
    } else {
        return ca + 10 * minbroj(a / 10, b / 10);
    }
}

int main()
{
    int a, b;

    scanf("%d %d", &a, &b);

    printf("%d", minbroj(a, b));

    return 0;
}
prevrti niza
#include <stdio.h>
#include <stdlib.h>

void prevrti(int niza[],int dolzina, int i)
{
    if(i==dolzina/2)
    {
        if ((dolzina%2)!=0)
        {
            niza[dolzina/2]=niza[dolzina/2];
        }
        return ;
    }

    int temp=niza[i];
    niza[i]=-niza[dolzina-i-1];
    niza[dolzina-i-1]=-temp;

    prevrti(niza,dolzina,i+1);

}


int main()
{
    int n,niza[100];
    scanf ("%d",&n);
    int i;
    for (i=0;i<n;i++)
    {
        scanf ("%d",&niza[i]);
    }

    for(i=0;i<n-1;i++)
    {
         printf ("%d ",niza[i]);
    }

    printf("%d", niza[n-1]);

    printf ("\n");

    prevrti(niza,n,0);

    for (i=0;i<n-1;i++)
    {
        printf ("%d ",niza[i]);
    }

    printf("%d", niza[n - 1]);

    return 0;
}
