编程算法实例-整数分解质因数
每个合数都可以写成几个质数(也可称为素数)相乘的形式,这几个质数就都叫做这个合数的质因数。
质因数(又称素因数或质因子)是指能整除给定正整数的质数,例如36的质因数为2和3(分解为2²×3²)。
#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