잡동사니/[2022] 회로이론

[백준/C] 11653번 소인수분해

heylo 2022. 12. 11. 02:09

https://www.acmicpc.net/problem/11653

 

11653번: 소인수분해

첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.

www.acmicpc.net

 

정수를 나누었을 때

나머지가 0이면 그것이 바로 소인수이다

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>  

int main()
{
    int n;     // 소인수분해할 양의 정수
    int i, k; // 반복
    
    scanf("%d", &n);
    
    for(i=2; i<=n; i++){
        while(n%i == 0){
            printf("%d\n", i); // 소인수 출력
            n/=i; // 다음 소인수 찾으러 가기 위해
                  // 이전에 찾은 소인수로 나눈다
        }
    }

    return 0;
}

 

 

아래는 문제 잘못 읽어서

약수 구하는 코드이다

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>  

int main()
{
    int n;     // 소인수분해할 양의 정수
    int i, k; // 반복
    
    scanf("%d", &n);
    
    for(i=2; i<=n; i++){
        if(n%i == 0){
            printf("%d ", i);
        }
    }

    return 0;
}