C语言程序:正整数分解质因数并打印所有可能的乘积因子
#include <stdio.h>
int isPrime(int num) { int i; for (i = 2; i <= num / 2; i++) { if (num % i == 0) { return 0; } } return 1; }
void printFactor(int num, int* factors, int count) { int i; for (i = 0; i < count; i++) { printf('%d', factors[i]); if (i != count - 1) { printf('*'); } } printf('\n'); }
void getFactors(int num, int* factors, int count, int start) { int i; if (num == 1) { printFactor(num, factors, count); return; } for (i = start; i <= num; i++) { if (num % i == 0 && isPrime(i)) { factors[count] = i; getFactors(num / i, factors, count + 1, i); } } }
void printAllFactors(int num) { int factors[100]; getFactors(num, factors, 0, 2); }
int main() { int num; printf('请输入一个整数:'); scanf('%d', &num); if (num <= 0) { printf('输入不合法\n'); return 0; } printf('所有可能的乘积因子如下:\n'); printAllFactors(num); return 0; }
原文地址: https://www.cveoy.top/t/topic/pwmI 著作权归作者所有。请勿转载和采集!