求出一个给定数字的所有因子(6 = 2 * 3)
2011-09-10 21:36
453 查看
#include <STDIO.H> void factors(int number) { int i, factor; for(i = 2; i <= number; i++) { if (number % i == 0) { factor = i; break; } } printf("%d * ", factor); if (number != i) { number = number / i; factors(number); } else { for(i = 0; i < 2; i++) { putchar('\b'); } } } void main() { int n; scanf("%d", &n); printf("%d = ", n); factors(n); }
相关文章推荐
- 给定一个整数,打印出它的所有素数因子--两种方法,两种效率。
- java 给定一个非负整数num,反复添加所有的数字,直到结果只有一个数字
- 给定一个数字字符串,返回数字可能表示的所有可能的字母组合。数字与字母的对应关系和手机按键对应
- java求n以内的完全数。所谓的完全数即如果一个数字的所有真因子之和等于自身,则称它为“完全数”或“完美数”
- 给定一个数字字符串,返回数字可能表示的所有可能的字母组合。数字与字母的对应关系和手机按键对应。
- 给定一个数字m和数字n,输出相应的所有排列
- 给定一个十进制正整数N,求出从1开始,到N的所有整数,数字1出现的次数(java实现)
- 给定一个字符串只含有数字,判定这个字符串能表达的所有IP地址
- 给定一个填充非负数的m×n网格,找到一条从左上到右下的路径,这个路径将所有数字的总和最小化。
- 任意给定一个自然数N,要求M是N的倍数,且他的所有各位数字都是由0或1组成,并要求M尽可能小
- 给出一个数字m,求满足m = a^3 + b^3(a,b为正整数)的所有整数对(分解素因子防超时)
- 给定一个数字列表,返回其所有可能的排列。 注意事项 你可以假设没有重复数字。
- 给定一个充满非负数的网格,找到从左上到右下的路径,最小化沿其路径的所有数字的总和。只能向下或向右移动。
- 给定一个数组,当中有正负数,求当中的一段“子数组”(即任意长度,连续的数字), 使得这个“子数组”的和是所有“子数组”和中最大的
- 给定一个正整数n,则在n所有的分解式中,求因子乘积最大的一个分解及此乘积。
- 给定一个排序的链表,删除所有具有重复数字的节点,从原始列表中只留下不同的数字。
- 给定一个三角形,从顶部到底部找到最小路径和。 每个步骤,您可以移动到下面的行上的相邻数字。
- PHP 输入一棵二叉树和一个数字n,要求找出路径和为n的所有路径
- 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
- 给定一个整数,求比该整数大的最小的整数,其数字能够组成一个回文