关于我与质因数斗智斗勇的故事

  首先声明,此程序运用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中多次对同一个数进行计算,了解这一点问题便迎刃而解了。

 

下面给出完整程序

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

posted @ 2020-10-31 19:47  钟佳标  阅读(108)  评论(1编辑  收藏  举报