
#include <stdio.h>
int main() {
unsigned int N;
scanf("%u", &N);
if (N != 0 && (N & (N - 1)) == 0) {
printf("1\n");
} else {
printf("0\n");
}
return 0;
}
풀이
N 값을 입력받음
if (N != 0 && (N & (N - 1)) == 0) :
(N & (N - 1)) == 0로 N이 2의 제곱수인지 확인
N != 0을 추가하여 N이 0이 아닌지 확인
조건이 참이면 1을 출력하고 그렇지 않으면 0을 출력

#include <stdio.h>
int main() {
int A, B;
while (1) {
scanf("%d %d", &A, &B);
if (A == 0 && B == 0) {
break;
}
if (B % A == 0) {
printf("factor\n");
}
else if (A % B == 0) {
printf("multiple\n");
}
else {
printf("neither\n");
}
}
return 0;
}
풀이
scanf로 두 개의 정수를 입력받음
입력받은 두 숫자가 모두 0인 경우 프로그램 종료
B % A == 0인 경우 첫 번째 숫자가 두 번째 숫자의 약수이므로 factor를 출력
A % B == 0인 경우 첫 번째 숫자가 두 번째 숫자의 배수이므로 multiple을 출력
둘 다 아니면 neither 출력