2, 3, 5, 7, 11로 나눈 횟수를 출력한다.
배열을 생성해 각 수로 나눠질 때마다 1씩 증가시켰다.
#include <stdio.h>
int main(void) {
int n[5] = { 2, 3, 5, 7, 11 };
int N, T;
scanf("%d", &T);
for (int tc = 0; tc < T; tc++) {
int an[5] = { 0 };
scanf("%d", &N);
for (int i = 0; i < 5; i++) {
for (;;) {
if (N % n[i] == 0) {
an[i]++;
N /= n[i];
}
else
{
break;
}
}
}
printf("#%d ", tc + 1);
for (int i = 0; i < 5; i++) printf("%d ", an[i]);
printf("\n");
}
return 0;
}
+예전에 풀었던 코드
#include <stdio.h>
#include <stdlib.h>
int main(void){
int i, j;
int T, *N = 0;
int *a, *b, *c, *d, *e;
scanf("%d", &T);
a = (int*)malloc(sizeof(int)*T);
b = (int*)malloc(sizeof(int)*T);
c = (int*)malloc(sizeof(int)*T);
d = (int*)malloc(sizeof(int)*T);
e = (int*)malloc(sizeof(int)*T);
N = (int*)malloc(sizeof(int)*T);
for(i=0; i<T; i++) scanf("%d", &N[i]);
for(i=0; i<T; i++){
a[i]=0;
b[i]=0;
c[i]=0;
d[i]=0;
e[i]=0;
for(;;){
if(N[i] % 2 == 0){
a[i]++;
N[i] /= 2;
}
else break;
}
for(;;){
if(N[i] % 3 == 0){
b[i]++;
N[i] /= 3;
}
else break;
}
for(;;){
if(N[i] % 5 == 0){
c[i]++;
N[i] /= 5;
}
else break;
}
for(;;){
if(N[i] % 7 == 0){
d[i]++;
N[i] /= 7;
}
else break;
}
for(;;){
if(N[i] % 11 == 0){
e[i]++;
N[i] /= 11;
}
else break;
}
}
for(i=0; i<T; i++) printf("#%d %d %d %d %d %d\n", i+1, a[i], b[i], c[i], d[i], e[i]);
return 0;
}
'SWEA > [D2]' 카테고리의 다른 글
[C언어] SWEA 1204 최빈수 구하기 (0) | 2020.08.15 |
---|---|
[C언어] SWEA 1284 수도요금경쟁 (0) | 2020.08.15 |
[C언어] SWEA 1970 쉬운 거스름돈 (0) | 2020.08.09 |
[C언어] SWEA 1989 초심자의 회문검사 (0) | 2020.08.09 |
[C언어] SWEA 1926 간단한 369게임 (0) | 2020.07.19 |