我有一道数学题:任意给定一个大于1得正整数n,设计一个算法求出n得所有因数.请写出过程,明天要交了,这样太深奥了,我看不到
问题描述:
我有一道数学题:任意给定一个大于1得正整数n,设计一个算法求出n得所有因数.
请写出过程,明天要交了,
这样太深奥了,我看不到
答
L的正确
答
用MATLAB的代码如下:
max=n;
a=1:max;%创建1到n的所有数
b=isprime(a);%判断元素是否为素数
a(b)%返回所有素数
命令窗口返回的即是1——n的所有素数
事实上
a=[1 2 3 4 5 6 7 8 9 10:::: n]
b=[0 1 1 0 1 0 1 0 0 0 ::;::]
a(b)就返回所有素数2 3 5
看懂了吗对应b中不为0的返回
答
伪代码如下
算法开始:
执行后面的内容直到n=1为止
(
令i从2取到[√n]
如果(i|n),则(输出i,令n=原来的n除以i,退出"令i从2取到[√n]"这个循环)
)
算法结束.
行了
---------------------
这样还深奥?真是让人没办法的lz啊.
那看这个:
第一步:获得n的值
第二步:令i为1
第三步:把i的值加上1
第四步:如果i能整除n则继续执行第五步,否则跳到第六步
第五步:令n的值为[n除以i],并且显然i是n的因数,输出i,跳到第七步
第六步:如果i