이 문제도 시간초과가 나서 당황스러웠던 문제,,,,, 답은 제대로 나오는데 어떻게 풀어야할까 고민하다가,,
검색을 해보니 cin, cout과 printf, scanf의 속도차이가 크다고 해서 일단 cin만 scanf로 수정을 해주었더니 바로 맞았습니다, 가 떴다.
속도를 위해선 scanf와 printf를 써야함을 잊지 말자!
#include <iostream>
using namespace std;
bool check[1000001];
int main() {
int num, i, j, tmp, flag = 0;
check[0] = check[1] = true;
for (i = 2; i < 1000001; i++) {
if (check[i] == false) {
for (j = i * 2; j < 1000001; j += i)
check[j] = true;
}
}
scanf("%d", &num);
while (num != 0) {
for (i = 3; i < num/2 + 1; i++) {
if (check[i] == false) {
tmp = num - i;
if (tmp>0 && check[tmp] == false) {
cout << num << " = " << i << " + " << tmp << '\n';
flag = 1;
break;
}
}
}
if (flag == 0)
cout << "Goldbach's conjecture is wrong.\n";
scanf("%d", &num);
}
}
'자윤이와고리즘 > Code' 카테고리의 다른 글
[백준] 1476 | 날짜계산 (0) | 2019.05.09 |
---|---|
[백준] 2309 | 일곱 난쟁이 (0) | 2019.05.09 |
[백준] 1929 | 소수구하기 (0) | 2019.05.08 |
[백준] 1978 | 소수 찾기 (0) | 2019.05.08 |
[백준] 9613 | GCD합 (0) | 2019.05.08 |