Пример #1
0
int main(int argc, char ** argv)
{
	long long h, H;
	
	for(h = 143 + 1, H = polygonal(h, 6); ; h++, H = polygonal(h, 6))
	{
		if(is_polygonal(H, 5) && is_polygonal(H, 3))
		{
			printf("T_%Ld == P_%Ld = H_%Ld = %Ld\n", polygonal_index(H, 3), 
				polygonal_index(H, 5), polygonal_index(H, 6), H);
			break;
		}
	}
	
	return 0;
}
Пример #2
0
int main(int argc, char ** argv)
{
	int j, k, m, n;
	
	for(j = 0; j < 6; j++)
	{
		nums_size[j] = 0;
		nums_cap[j] = 8;
		nums[j] = (int *) malloc(nums_cap[j] * sizeof(nums[j][0]));
		
		for(k = polygonal_index(j + 3, 1000) - 1; polygonal(j + 3, k) < 1000; k++);
		
		m = 0;
		do
		{
			if(m >= nums_cap[j])
			{
				nums_cap[j] *= 2;
				nums[j] = (int *) realloc(nums[j], nums_cap[j] * sizeof(nums[j][0]));
			}
			
			nums[j][m] = polygonal(j + 3, k);
			
			m++;
			k++;
		} while(polygonal(j + 3, k) < 10000);
		
		nums_size[j] = m - 1;
	}
	
	for(k = 0; k < nums_size[5]; k++)
	{
		if(j = foo(nums[5][k], nums[5][k], 4, 1 << 5))
		{
			printf("%d\nsum: %d\n", nums[5][k], j + nums[5][k]);
		}
	}
	
	/*
	for(j = 0; j < 6; j++)
	{
		printf("%d:\n", j);
		printf("%d", nums[j][0]);
		for(k = 1; k < nums_size[j]; k++)
		{
			printf(", %d", nums[j][k]);
		}
		printf("\n");
	}
	*/
	return 0;
}
Пример #3
0
int is_polygonal(int s, int p)
{
	return polygonal(s, polygonal_index(s, p)) == p;
}