数学趣题——分解质因数
在2~n-1之间找出n的两个因数(不一定是质因数)i和j,即i * j = n;
如果i是质数,则j必须是n的一个质因数,否则继续对j进行质因数分解。
如果j是质数,则i必须是n的一个质因数,否则继续对i进行质因数分解。
1: #include <stdio.h>
2:
3: int IsPrime(int a)
4: {
5: int i;
6: for (i=2; i<a-1; i++)
7: {
8: if (a % i == 0)
9: {
10: return 0;
11: }
12: }
13:
14: return 1;
15: }
16:
17: void PrimeFactor(int n)
18: {
19: int i;
20: if (IsPrime(n))
21: printf("%d ", n);
22: else
23: {
24: for (i=2; i<n-1; i++)
25: {
26: if (n % i == 0)
27: {
28: printf("%d ", i);
29: if (IsPrime(n / i))
30: {
31: printf("%d ", n / i);
32: break;
33: }
34: else
35: PrimeFactor(n / i);
36: break;
37: }
38: }
39: }
40: }
41:
42: int main()
43: {
44: int n;
45: printf("input a integer\n");
46: scanf("%d", &n);
47: PrimeFactor(n);
48: return 0;
49: }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步