vidigummy KAU/알고리즘 공부(백준!)

BOJ 9020(골드바흐의 추측)

vidi 2020. 7. 11. 23:10
#include <iostream>

using namespace std;

int* Era(int num)
{
	int* arr = (int*)malloc(sizeof(int) * (num + 1));
	for (int i = 1; i < num; i++)
		arr[i] = 0;
	for (int i = 1; i < num / 2; i++)
	{
		if (arr[i] == 1)
			;
		else
		{
			for (int j = 2; j < (num / (i + 1)) + 1; j++)
			{
				arr[((i + 1) * j) - 1] = 1;
			}
		}
	}
	return arr;
}

int* answer(int input)
{
	int* arr = Era(input);
	int ans[3];
	for (int i = input / 2; i > 0; i--)
	{
		for (int j = (input / 2)-1; j < input; j++)
		{
			if (arr[i] == 0 && arr[j] == 0)
			{
				if (i + j + 2 == input)
				{
					arr[0] = i + 1;
					arr[1] = j + 1;
					return arr;
				}
			}
			
		}
	}
	
}

int main()
{
	int TestCase;
	cin >> TestCase;
	while (TestCase--)
	{
		int input;
		int* ans;
		cin >> input;
		ans = answer(input);
		cout << ans[0] << " " << ans[1] << "\n";
	}
	return 0;
}

충분히 쉬고 놀고 그래도 뭔가 하고 있긴 하다.