每个合数都可以写成几个质数(也可称为素数)相乘的形式,这几个质数就都叫做这个合数的质因数。
质因数(又称素因数或质因子)是指能整除给定正整数的质数,例如36的质因数为2和3(分解为2²×3²)。
c
#include <stdio.h>
#include <stdlib.h>
//
int *factorNum(int n) {
//
int *arr = malloc(sizeof(int) * 100);
//
int index = 1;
for (int i = 2; i <= n; i++) {
while (n != i) {
if (n % i == 0) {
arr[index++] = i;
n = n / i;
} else {
break;
}
}
}
//
int len = index + 1;
arr[0] = len;
arr[index] = n;
//
return arr;
}
int main()
{
int n = 51;
int *arr = factorNum(n);
int len = arr[0];
//
printf("%d = ",n);
for (int i = 1; i < len; i++) {
printf("%d %c ", arr[i], (i != len - 1 ? '*' : ' '));
}
return 0;
}
10 = 2 * 5
18 = 2 * 3 * 3
50 = 2 * 5 * 5