1.要保证m小,n大传入,在传入函数前若m>n;则引入temp,调换顺序
2.求最小公倍数,最大公约数时,要注意a++,b--;循环条件的设置,求最小公倍数时,a++;若求最大公倍数,b--,且b>0;
3.求素数时,要注意1不是素数!!!
(1)判断m是不是1格外的关键,如果没有判断1,使之变为1的话,那么在a%b==0时,1%2==0;也成立,那么程序会判断1也为素数;所以要判断m是否为1!!!
(2)flag作为开关,如a=5,则要判断2到4之间是否有除数,可引入flag,若在经历整个循环后,flag依旧不变,则说明不满足if条件,没有除数,满足素数的条件
4.完数;1也不是完数!!!
(1)与素数一样,也要注意m=1;若没有判断m=1;那么进入循环后,sum=1;sum==a=1;所以程序会判断1也是完数,导致结果错误;
(2)sum=1;以及sum的位置,在第一个循环的位置,若在第一个循环下没有写sum=1;那么sum的值就会一直累计,如a=2,sum=1;a=3,sum=1;a=4;sum=3;a=6,sum=6;但是到8,sum=6+4=10了,到下一个完数即28时就会判断错误,sum此时已经sum=1+2+3+4+5+6+7+8+9+10+11+12+13+14了不等于28了,所以每一个a结束后都要初始化sum=1
(3)素数与完数一样都要判断m是否为1