/**
 * Problema 1
 *
 */

#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
 *
 */

# include <stdio.h>

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

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

        for (i=1;i<=n;i++){
                printf("%6d",i);
                if (i%m==0)
                        printf("\n");
                if (i%(24*m)==0){
                        fflush(stdin);
                        getchar();
                }
        }

        return 0;
}

/**
 * Problema 3
 *
 */

#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++) {
                sx += x;
                sy += y;
                if (i % (n/10) == 0) printf("%0.8f   %0.8lf\n", sx, sy);
        }
        printf("%0.8f   %0.8lf\n", sx, sy);

        return 0;
}

/**
 * Problema 4
 *
 */

#include <stdio.h>

int main()
{
        int a, b, s, aux;
        scanf("%d", &a);
        if (a == 0)
                return 0;
        do
        {
                scanf("%d", &b);
                aux = a;
                for ( s = 0; aux > 0; aux /= 10)
                        s += aux % 10;
                if (b == a % s)
                        printf("%d %% %d = %d \n", a, s, b);
                a = b;  
        } while (a != 0);
        return 0;
}

/**
 * Problema 5
 *
 */

#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;
                        if ( k >= j && k <= i + j && i <= k + j && j <= k + i )
                                printf( "%d %d %d\n", i, j, k );
                }

        return 0;
}

/**
 * Problema 6
 *
 */

#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
 *
 */

#include <stdio.h>
#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;
}

/**
 * Problema 8
 *
 */

#include <stdio.h>
#include <math.h>

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

        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));
        return 0;
}

/**
 * Problema 9
 *
 */

#include <stdio.h>
#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 {
                        prim = q % 2 == 0 ? 0 : 1;
                        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);

        while (n >= limit) {
                s += nr_cf * (limit - limit/10);
                nr_cf++;
                limit *= 10;
        }
        limit /= 10;
        s += nr_cf * (n - limit + 1);

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