用流程图表示求自然数n所有约数的算法

来源:百度知道 编辑:UC知道 时间:2024/07/04 12:06:59
请用文字表述

(1)输入自然数n
(2)令m=1
(3)若m<n
(a)若 n是m的倍数,输出m
(b)否则m加1,跳转到(3)执行
(4)结束

用短除法先将这个自然数分解因数,
n=a^x*b^y*c^z
由n的约数个数为(x+1)*(y+1)*(z+1)
说得更清楚点就是把一个数分为几个数的乘方的乘积,再把这几个乘方的指数分别加上1再乘来就是这个数的约数个数
比如说420,
420=2^2*5*3*7
2^2的指数是2,5的指数是1,3的指数是1,7的指数是1
分别上1再相乘:(2+1)*(1+1)*(1+1)*(1+1)=24
那么420的约数个数就是24

(1)输入自然数n
(2)令m=1
(3)若m<n
(a)若 n是m的倍数,输出m
(b)否则m加1,跳转到(3)执行
(4)结束

用短除法先将这个自然数分解因数,如:210
2 210
3 105
5 35
7
即 210=2*3*5*7
这样210的约数有:1,2,3,5,7,6,10,14,15,21,35,30,42,70,105,210。
方法是:单独1个质数构成的先列出来,
再把由两个质数的积构成的列出来,
依次类推,只到所有质数相乘的积。

input(n);
int m=1;//公约数
while m=<n{
if n 整除m
output(m);
m=m+1;
}