문제
링크
풀이
#include <stdio.h>
int main(void) {
int n, a[250];
for (int i=1; i<=250; i++) {
a[i] = i*i;
}
scanf("%d", &n);
for (int i=0; i<250; i++) {
if (a[i] < n) continue;
if (a[i] > n) break;
printf("1");
return 0;
}
for (int i=0; i<250; i++) {
for (int j=0; j<250; j++) {
if (a[i] + a[j] < n) continue;
if (a[i] + a[j] > n) break;
printf("2");
return 0;
}
}
for (int i=0; i<250; i++) {
for (int j=0; j<250; j++) {
for (int k=0; k<250; k++) {
if (a[i] + a[j] + a[k] < n) continue;
if (a[i] + a[j] + a[k] > n) break;
printf("3");
return 0;
}
}
}
for (int i=0; i<250; i++) {
for (int j=0; j<250; j++) {
for (int k=0; k<250; k++) {
for (int l=0; l<250; l++) {
if (a[i] + a[j] + a[k] + a[l] < n) continue;
if (a[i] + a[j] + a[k] + a[l] > n) break;
printf("4");
return 0;
}
}
}
}
}