728x90
소인수분해란?
소인수분해는 말 그대로 어떤 수를 소수들의 곱으로 나타내는 것을 의미합니다.
예를 들어 12를 소인수분해하면 2 x 2 x 3로 나타낼 수 있습니다.
7과 같은 소수는 분해하면 자기 자신인 7만 남게 됩니다.
이렇게 나타내면 원래 수를 더 작은 소수들의 곱으로 표현하는 것이 가능해집니다.
소인수분해 예시코드1
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N;
for (int i = 2; i * i <= N; ++i) {
while (N % i == 0) {
cout << i << endl;
N /= i;
}
}
if (N > 1) {
cout << N << endl;
}
return 0;
}
소인수분해 예시코드2
#include<iostream>
using namespace std;
int main()
{
int N;
cin >> N;
for (int i = 2;N>1;)
{
if (N % i == 0)
{
cout << i << endl;
N /= i;
}
else
{
i++;
}
}
return 0;
}
대략적으로 두 가지 방법이 있지만 첫 번째 코드가 더 효율적이고 가독성이 좋은 것 같습니다.
728x90
'프로그래밍 > C++' 카테고리의 다른 글
[C++] 정수 한자리씩 분할하기 (0) | 2023.08.14 |
---|---|
[C++] 구조체를 활용하여 x, y 좌표 입력하기 (0) | 2023.08.10 |
[C++] 이차원 배열 동적할당 /정적할당 (0) | 2023.08.07 |
[C++] STL map 정리 (0) | 2023.08.05 |
[C++] (string , vector) 반전,뒤집기 : reverse 함수 (0) | 2023.08.01 |