关于我与质因数斗智斗勇的故事
首先声明,此程序运用VC++6.0.
那么,直接进入正题。
问题如上。
要解决这个问题,就要先知道什么是质因数以及它的求法。关于这个知识,同学们可以自行度娘。
这里运用短除法。例如数120,求质因数就是2,2,2,3,5.
很明显,把一个数除以各素数,分别 得到的商 和 所用各素数 ,便是这个数的质因数。
听某班主任说,用我们现学的知识就可以解决,也就是用 if() 条件语句和 for() 循环语句。
根据以上说明,首先,确立一个循环。
这里的i<=a是我设立的一个限制条件,有其他想法的也可以试试。
n表示质因数个数。
接下来便是最重要的,也是最费脑的。
根据短除法,要用a/i,直到a%i!=0,在这有一个问题。
那就是单独用for()语句不能让一个数多次除以同一个数(也可能是我没想到),那么就要套if()条件语句了。
第一个for语句确定除数的变化,if语句限制条件。
第二个for语句,n表示第二个for的循环次数及质因数个数,a%i==0表示限制条件。
注意,这里n的自增一定要表示为++n,否则结果n会多计算一次。
总结:这道题的难点是如何在for中多次对同一个数进行计算,了解这一点问题便迎刃而解了。
下面给出完整程序