C/C++の宿題片付けます 147代目
■ このスレッドは過去ログ倉庫に格納されています
0390デフォルトの名無しさん
2011/04/23(土) 22:27:20.94#include <stdio.h>
#define N 100000
char sieve[N] = {0, 0, 1};
int main(void)
{
int i, j, x, y;
for(i = 3; i < N; i += 2) sieve[i] = 1;
for(i = 3; i * i < N; i += 2) if(sieve[i]) for(j = i * i; j < N; j += i) sieve[j] = 0;
scanf("%d", &x);
for(i = 2; i * 3 <= x; i++) {
if(sieve[i] == 0) continue;
y = x - i;
for(j = i; j * 2 <= y; j++) {
if(sieve[j] && sieve[y - j]) {
printf("%d %d %d\n", i, j, y - j);
return 0;
}}}
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています