특정 수의 소인수 값 구하기. (Integer Factorization)

2016. 8. 12. 12:13알고리즘

#include<stdio.h>


int main()

{

unsigned long num1, num2;

int i;

int j[1000];

int t;

printf("Input Integer_Factorizaion Num : ");

scanf("%ld",&num1);

num2 = num1;

for(i = 2 ; i <= num2 ; i++)

{

if( (num2 % i) == 0 )

{

j[t++] = i;

num2 /= i;

if(num2 % i == 0)

{

j[t++] = i;

num2 /= i;

}

}

}

printf("인수 개수 : %d \r\n" , t);

printf("Input Num : %ld \r\n", num1);

printf(" Interger_Factorization : ");

num2 = 1;


for(i = 0 ; i < t ; i++)

{

printf("%d ", j[i]);

num2 *= j[i];

}

if(num1 == num2) printf("\r\n Success \r\n");

else printf("\r\n Failed \r\n");

}

//특정 수의 소인수 값 구하기


결과 :

Input Integer_Factorizaion Num : 600851475143

인수 개수 : 4 

Input Num : 600851475143 

 Interger_Factorization : 71 839 1471 6857 

 Success