Beispiel #1
0
int main()
{
	int i = 1;
	int last_count = 1;
	int new_count;
	int count;

	while (1) {
		if (i%2 == 1)
			new_count = count_divisors_half(i+1);
		else
			new_count = count_divisors(i+1);

		count = last_count*new_count;
		if (count > DIVISORS)
			break;

		last_count = new_count;
		i++;
	}

	printf("Result: %d\n", i*(i+1)/2);

	return 0;
}
Beispiel #2
0
//Brute force!
int main(){
  int i=0,divisor_count=0,num=0;

  while(count_divisors(num) <= 500){
    i++;
    num = (i * (i+1))/2;
  }

  printf("%d\n",num);
  return 0;
}
Beispiel #3
0
int main(void)
{
	long long tnum = 1, topsum = 1;

	int nprimes = 0;
	int i, j;
	int *iscomposite = (int *) calloc(MAX_CHECK+1, sizeof(int));
	int *prime_list = (int *) calloc(MAX_CHECK+1, sizeof(int));

	for(i = 2; i <= MAX_CHECK; i++)
		if(!iscomposite[i]) {
			prime_list[nprimes++] = i;
			for(j = 2*i; j <= MAX_CHECK; j += i)
				iscomposite[j] = 1;
		}

	while(count_divisors(tnum, prime_list, nprimes) <= 500) {
		tnum += ++topsum;
	}

	printf("With %d divisors, %d is the first triangle number with > 500 divisors.\n", count_divisors(tnum, prime_list, nprimes), tnum);
	return 0;
}
int main(void)
{
  int next_natural_number = 2;
  int current_triangular_number = 1;
  int number_of_divisors = 1;

  while (number_of_divisors <= 500)
  {
    current_triangular_number += next_natural_number++;
    number_of_divisors = count_divisors(current_triangular_number);
  }

  printf("next natural number: %d\n", next_natural_number);
  printf("trangular number: %d\n", current_triangular_number);
  return 0;
}