1 ~ N 의 숫자를 차례대로 for loop을 돌린다.

약수의 개수가 홀수면 문이 열려있다.



그런데 약수의 개수가 홀수라면 완전제곱수이다.


그래서 1 ~ N까지의 완전제곱수 개수를 구하면 된다.

#include <cstdio>
/**
* https://www.acmicpc.net/problem/6359
* BOJ 백준온라인져지 6359 만취한 상범 풀이
*/
int main(){
int *openList = new int[101];
int testCase;
scanf("%d", &testCase);
while(testCase--){
int numberOfRoom;
scanf("%d", &numberOfRoom);
if(!openList[numberOfRoom])
for(int i = 1; i * i <= numberOfRoom; i++)
openList[numberOfRoom]++;
printf("%d\n", openList[numberOfRoom]);
}
}
view raw BOJ_6359.cpp hosted with ❤ by GitHub

+ Recent posts