Beispiel #1
0
int main() {
	freopen("t.in", "r", stdin);
	scanf("%lld%lld%d", &L, &R, &upper);

	ll res = 0;
	for ( ll x = L; x <= R; x ++ ) {
		ll y = x, acc = 0;
		while ( 1 ) {
			acc += count_sum(y);
			if ( acc >= upper ) break;
			if ( y == R ) break;
			y ++;
		}
		if ( acc >= upper ) 
			res ++;
		x = y;
	}
	printf("%lld\n", res);
}
Beispiel #2
0
/* Makes a random polynomial of degree degree.		*
 * The result may be the zero polynomial!		*/
static struct polynomial make_initial_pol(unsigned int degree, int print)
{
	unsigned int a1, a2, a3, a4;
	int c;
	struct polynomial uit;
	struct term *uitterm;
	struct term **ptrterm;
	uitterm = NULL;
	uit.degree = degree;
	uit.leading = NULL;

	if (!count_sum(degree)) {
		printf("No monomials of degree %d! Stop.\n", degree);
		exit(1);
	}

	for (a1 = 0; (d1*a1 <= degree);a1++) {
	  for (a2 = 0; (d1*a1 + d2*a2 <= degree);a2++) {
	    for (a3 = 0; (d1*a1 + d2*a2 + d3*a3 <= degree);a3++) {
	      if ((degree - (a1*d1 + a2*d2 + a3*d3)) % d4 == 0) {
		a4 = (degree - (a1*d1 + a2*d2 + a3*d3))/d4;
		/* Dummy input at first. */
		c = 1;
		/* Create the new term to be put in. */
		make_term(&uitterm);
		uitterm->n1 = a1;
		uitterm->n2 = a2;
		uitterm->n3 = a3;
		uitterm->n4 = a4;
		uitterm->c = c;
		ptrterm = &(uit.leading);
		while ((*ptrterm) && (kleiner(uitterm, *ptrterm) == KLEINER)) {
			ptrterm = &((*ptrterm)->next);
		}
		uitterm->next = *ptrterm;
		*ptrterm = uitterm;
		uitterm = NULL;
	      }
	    }
	  }
	}
	if (print) {
		uitterm = uit.leading;
		while (uitterm) {
			a1 = uitterm->n1;
			a2 = uitterm->n2;
			a3 = uitterm->n3;
			a4 = uitterm->n4;
			c = 0;
			printf("Coefficient of   ");
			if (a1) {
				printf("x^%d", a1);
				c++;
			}
			if ((a1) && (a2 + a3 + a4)) {
				printf(" * ");
				c++;
			}
			if (a2) {
				printf("y^%d", a2);
				c++;
			}
			if ((a2) && (a3 + a4)) {
				printf(" * ");
				c++;
			}
			if (a3) {
				printf("z^%d", a3);
				c++;
			}
			if ((a3) && (a4)) {
				printf(" * ");
				c++;
			}
			if (a4) {
				printf("w^%d", a4);
				c++;
			}
			while (8 - c) {
				printf("   ");
				c++;
			}
			printf("= ");
			print_scalar(uitterm->c);
			printf("\n");
			uitterm = uitterm->next;
		}
	}
	return(uit);
}
Beispiel #3
0
Datei: main.c Projekt: aajarven/c
int main() {
    count_sum();
    return 0;
}
Beispiel #4
0
int hilbert(int degree)
{
	int goodcount;

	goodcount = count_sum(degree);
	goodcount -= count_sum(degree - d + d1);
	goodcount -= count_sum(degree - d + d2);
	goodcount -= count_sum(degree - d + d3);
	goodcount -= count_sum(degree - d + d4);
	goodcount += count_sum(degree - 2*d + (d1 + d2));
	goodcount += count_sum(degree - 2*d + (d1 + d3));
	goodcount += count_sum(degree - 2*d + (d1 + d4));
	goodcount += count_sum(degree - 2*d + (d2 + d3));
	goodcount += count_sum(degree - 2*d + (d2 + d4));
	goodcount += count_sum(degree - 2*d + (d3 + d4));
	goodcount -= count_sum(degree - 3*d + (d1 + d2 + d3));
	goodcount -= count_sum(degree - 3*d + (d1 + d2 + d4));
	goodcount -= count_sum(degree - 3*d + (d1 + d3 + d4));
	goodcount -= count_sum(degree - 3*d + (d2 + d3 + d4));
	goodcount += count_sum(degree - 4*d + (d1 + d2 + d3 + d4));

	return(goodcount);
}