Pentru fisierele sursa cu rezolvarile, verificati arhiva.
/**
 * Problema 1
 *
 */

// Pentru functia printf()
#include <stdio.h>

int main()
{
        int i;

        for ( i = 32; i < 127; i++ )
                if ( i % 10 == 1 )
                        printf("%c = %d\n", i, i );
                else
                        printf("%c = %d ", i, i );
        return 0;
}




/**
 * Problema 2
 *
 */

//Pentru functiile scanf() si printf()
# include <stdio.h>

int main()
{
        int i, n, m;

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

        for (i = 1; i <= n; i++){
                printf("%6d", i);
                // conditie de test pentru trecerea la linie noua
                if (i % m == 0)
                        printf("\n");
                // conditie de test pentru intreruperea afisarii
                if (i % (24 * m) == 0){
                        fflush(stdin);
                        getchar();
                }
        }

        return 0;
}



/**
 * Problema 3
 *
 */

// Pentru functiile scanf() si printf()
#include <stdio.h>

int main ()
{
        float x, sx = 0;
        double y, sy = 0;
        int n, i;

        printf ("n = "); scanf ("%d", &n);
        printf ("x = "); scanf ("%f", &x);
        printf ("y = "); scanf ("%lf", &y);

        for (i = 0; i < n; i++) {
                // reactualizam sumele partiale sx si sy
                sx += x;
                sy += y;
                //testam daca am parcurs n/10 termeni
                if (i % (n / 10) == 0) printf("%f %e\n%lf %e\n\n", sx, sx, sy, sy);
        }
        printf("%f %e\n%lf %e\n", sx, sx, sy, sy);

        return 0;
}




/**
 * Problema 4
 *
 */

// Pentru functiile printf() si scanf()
#include <stdio.h>

int main()
{
        int a, b, s, aux;
        // se citeste un numar
        scanf("%d", &a);
        // se verifica daca numarul este egal cu 0
        if (a == 0)
                return 0;
        do
        {
                //se citeste un alt numar
                scanf("%d", &b);
                // se calculeaza suma cifrelor primului numar din pereche, adica suma cifrelor lui a
                aux = a;
                for ( s = 0; aux > 0; aux /= 10)
                        s += aux % 10;
                // se verifica conditia
                if (b == a % s)
                        printf("%d %% %d = %d \n", a, s, b);
                // se actualizeaza valoarea lui a
                a = b;  
        } while (a != 0);
        return 0;
}




/**
 * Problema 5
 *
 */

// Pentru functiile printf() si scanf()
#include <stdio.h>

int main()
{
        int i, j, p, k;

        scanf( "%d", &p );
        for( i = 1; i < p - 1; i++ )
                for( j = i; j < p - i; j++ ) {
                        k = p - i - j;
                        // verificam daca cele 3 numere pot forma laturile unui triunghi.
                        if ( k >= j && k <= i + j && i <= k + j && j <= k + i )
                                printf( "%d %d %d\n", i, j, k );
                }

        return 0;
}




/**
 * Problema 6
 *
 */

// Pentru printf() si scanf()
#include <stdio.h>

int main ()
{
        int n, m, i, c, nf, mf, nmf;

        scanf ("%d%d", &n, &m);
        
        //metoda 1: folosirea relatiei de recurenta
        c = 1; // C(n,0)
        for (i = 1; i <= m; i++)
                c = c * (n - i + 1) / i;
        printf ("C(%d, %d) = %d\n", n, m, c);

        //metoda 2: folosind relatia de calcul
        for (nf = 1, i = 1; i <= n; i++) nf *= i;     //calculul lui n!
        for (mf = 1, i = 1; i <= m; i++) mf *= i;     //calculul lui m!
        for (nmf = 1, i = 1; i <= n - m; i++) nmf *= i; //calculul lui (n - m)!

        printf ("C(%d, %d) = %d\n", n, m, nf / (mf * nmf));

        return 0;
}



/**
 * Problema 7
 *
 */

// Pentru functiile printf() si scanf()
#include <stdio.h>
// Pentru functia pow()
#include <math.h>

int main()
{
        float x, s1 = 0, s2 = 0, t = 1, eps = 0.0001;
        int n, i;
        scanf("%f %d", &x, &n);
        for ( i = 0; i < n; i++)               /* Ca suma a unui numar dat de termeni */
        {
                s1 += t;
                t = t * x / (i + 1);
        }
        
        t = 1;
        for ( i = 0; t > eps; i++)           /* Ca suma a termenilor mai mari decat un epsilon dat*/
        {
                s2 += t;
                t = t * x / (i + 1);
        }
        
        printf("%f     %f    %f     %f\n", s1, s2, exp(x), pow(2.718, x));
        return 0;
}
//pentru mai multe detalii despre functia pow() accesati http://www.cplusplus.com/reference/clibrary/cmath/pow/


/**
 * Problema 8
 *
 */

// Pentru functiile scanf() si printf()
#include <stdio.h>
// Pentru functiile fabs() si sqrt()
#include <math.h>

int main ()
{
        float x, r1, r2, EPS = 0.001;
        int i;

        scanf("%f", &x);

        r1 = r2 = x / 2 ;
        do
        {
                r1 = r2;
                r2 = ( r1 + x/r1 ) / 2;
        } while ( fabs( r1 - r2 ) > EPS );

        printf("rad(%2.0f)  =  %.3f  |  %.3f \n", x, r2, sqrt(x));

        for(i = 1; i <= 20; i++)
                printf("rad(%d) = %.3f\n", 2 * i, sqrt(2 * i));

        return 0;
}
//mai multe detalii despre functia sqrt() gasiti accesand http://www.cplusplus.com/reference/clibrary/cmath/sqrt/




/**
 * Problema 9
 *
 */

// Pentru printf() si scanf()
#include <stdio.h>
// Pentru sqrt(x)
#include <math.h>

int main ()
{
        int n, i;
        int p = 1, q = 1; // cu p si q generez sirul lui fibonacci
        int prim, d, rad, aux;

        scanf ("%d", &n);
        if (n <= 3) { // primii 3 termeni sunt 0,1,1
                printf ("Nu exista numere prime\n");
                return 0;
        }
        printf ("Numerele prime din sirul Fibonacci sunt: ");
        for (i = 4; i <= n; i++) {
                aux = p;
                p = q;
                q = aux + q; // calculam in q termenii sirului Fib. , tinand cont ca ultimii doi termeni sunt p si q

                if (q == 2)
                        printf ("%d ", q);
                else {
                        // daca restul impartirii lui q la 2 este 0, atunci q nu poate fi numar prim
                        prim = q % 2 == 0 ? 0 : 1;
                        //luam partea intreaga a radicalului
                        rad = (int)(sqrt(q));
                        d = 3;
                        while (prim && d <= rad) {
                                if (q % d == 0)
                                        prim = 0;
                                d += 2;
                        }
                        if (prim)
                                printf ("%d ", q);
                }
        }
        printf("\n");
        return 0;
}



/**
 * Problema 10
 *
 */

#include <stdio.h>

int main ()
{
        int n, limit = 10, nr_cf = 1;
        int s = 0; // suma cifrelor

        scanf ("%d", &n);
        //intuitiv:     intre 0 si 9 exista 10 numere de 1 cifra
        //              intre 10 si 99 exista 90 de numere de 2 cifre
        //comparam pe rand numarul n cu 10^1, 10^2 etc. pana cand n il depaseste pe limit (o putere a lui 10)
        while (n >= limit) {
                //actualizam suma
                s += nr_cf * (limit - limit/10);
                //odata cu cresterea limitei crestem si numarul de cifre
                nr_cf++;
                //actualizam limita prin inmultirea cu 10
                limit *= 10;
        }
        limit /= 10;
        //se va mai adauga la suma diferenta de cifre dintre n ultima limita
        s += nr_cf * (n - limit + 1);

        printf ("%d\n", s);
        return 0;
}