C语言程序:打印正整数的所有乘积因子
#include <stdio.h>
void printFactors(int n, int* factors, int len) { int i; printf("1*"); for (i = 0; i < len - 1; i++) { printf("%d*", factors[i]); } printf("%d\n", factors[len - 1]); }
void getFactors(int n, int* factors, int len, int start) { int i; for (i = start; i <= n; i++) { if (n % i == 0) { factors[len] = i; if (n / i >= i) { getFactors(n / i, factors, len + 1, i); } else { printFactors(n / i, factors, len + 1); } } } }
void printProductFactors(int n) { int factors[100]; getFactors(n, factors, 0, 2); }
int main() { int n; printf("请输入一个整数:"); scanf("%d", &n); if (n <= 0) { printf("输入的数不是正整数\n"); } else { printf("所有可能的乘积因子为:\n"); printProductFactors(n); } return 0; }
原文地址: https://www.cveoy.top/t/topic/pwmP 著作权归作者所有。请勿转载和采集!