赞
踩
将一个正整数分解成质因数。如90=2*3*3*5。
分析:对n进行分解质因数,找一个最小质数(素数)k。
1.如果n>k,n也能被k整除,打印出k的值,n的值改为n/k
2.如果n不能被k整除,k++
3.如果n=k,说明分解质因数过程结束,打印输出即可。
- #include <stdio.h>
- void main()
- {
- int n,k;//n,用户输入的正整数;k,最小质数(素数)
- printf("请输入一个正整数\n");
- scanf("%d",&n);
- printf("%d=",n);
- for(k=2;k<=n;k++)
- while(n!=k)
- {
- if(n%k==0)
- {
- printf("%d*",k);
- n/=k;
- }
- else break;
- }
- printf("%d\n",n);
- }
运行结果:
- 请输入一个正整数
- 90
- 90=2*3*3*5
- 请按任意键继续. . .
可能你会觉得,这分解质因数体现在哪?你想想看,2是最小质数,如果一个数连2都不能整除,那么2的倍数他也都不能整除了,因为从小到大除,小的都除不尽了,大的还会除尽吗?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。