/**
* 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;
}