중첩반복문 - 중첩반복문 수행평가3(소인수 찾기)

2018. 7. 8. 11:29algorithm/dimigo.goorm.io

#include <stdio.h>


int IsPrimeNumber(int n) {


int i = 0;

int last = n / 2;  

if (n <= 1)

{

return 0;

}

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

{

if ((n%i) == 0)

{

return 0; //소수 x

}

}

return 1; //소수

}


int main() {

int num = 0;

int j;

int result[10] = { 0 };

int a, b, tmp;

int i;

scanf("%d", &a);

for (i = 1; i < a; i++) {

if (a % i == 0) {

tmp = a / i;

if (IsPrimeNumber(tmp) == 1) {

result[num] = tmp;

num++;

}

}

}

for (i = 0; i < num; i++) {

for (j = 0; j <= num; j++) {

if (result[i] <= result[j]) {

tmp = result[i];

result[i] = result[j];

result[j] = tmp;

}

}

}

for (i = 0; i < num; i++) {

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

}

return 0;

}