factorization의 c구현에 대해 여쭙니다..
푸르
질문 제목 : factorization 구현소수를 구하는 알고리즘이 잇죠,, 루트 2까지의 포문을 돌려서 구하는,,,
이때 입력값이 라면 0이 리턴되고 합성수라면 가장작은 소수가 리턴됩니다.
이것을 이용하여 factorization 을 구현하려고하는데 쉽지가 않군요,,
재귀함수를 써야하는건지..ㅠ ㅠ 하다하다 안되서질문드립니다
고수님들 도와주세요 ㅠ
ps 제가 짜던 코드입니다.. is_prime 함수가 가장작은 소수를 리턴하는 함수네요 ㅠ
#include stdio.h
#include math.h
int value;
int i=2;
int is_prime(int n);
void main(void)
{
int j=0,k;
int result=1, temp;
int array[100] = {0};
while(i1)
{
printf(1보다 큰 정수 입력작거나 같은수 입력시 종료 : );
scanf(%d, &i);
temp = i;
while((result != 0))
{
result = is_prime(i);
array[j] = result;
j++;
}
printf(%d\n,temp);
for(k=0;k=j-2;k++)
{
printf(%d,array[k]);
}
}
return 0;
}
int is_prime(int n)
{
int d;
for(d=2;d(int)sqrt(n);d++)
{
if((n%d) == 0)
{
i = i/d;
return d;
}
}
return 0;
}