소인수분해

BiBi·2021년 1월 21일
0

코딩테스트연습

목록 보기
53/66
#include <algorithm>
#include <iostream>
#include <stdio.h>
#include <vector>
#include <map>
#include <stack>
#include <queue>
#include <deque>
#include <string>
#include <cmath>
#include <time.h>
using namespace std;

bool arr[10000001];

int main() {
	//freopen("input.txt", "rt", stdin);


	
	for (int i = 2; i <= 10000000; i++) {
		arr[i] = 1;
	}
	for (int i = 2; i <= sqrt(10000000); i++) {
		for (int j = i * 2; j <= 10000000; j += i) {
			if (arr[j] == 0) {
				continue;
			}
			arr[j] = 0;
		}
	}

	int num;

	scanf("%d", &num);

	if (num == 1) {
		return 0;
	}

	for (int i = 2; i <= 10000000; i++) {
		if (arr[i] == 1) {
			while (num % i == 0 && num > 0) {
				num /= i;
				printf("%d\n", i);
			}
			if (num == 0) {
				break;
			}
		}
	}



	return 0;
}
profile
Server Network Engineer

0개의 댓글