C语言 求1000以内的完数 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3

日期:2018-05-15 14:05:58 人气:1

C语言 求1000以内的完数 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3

没太理解你的想法 while (n%i==0) { a-=i; n/=i; } 这段的意思是判断出来一个数是它的因子然后就把它除掉么? 那么这有两个问题 1.应该用if而不是while,否则会陷入死循环,一直在除1 2.这个想法本身貌似就有点儿问题,比如说18,它的因子包括1,2,3,6,9,但是如果你先除掉2在后面的判断中6就不是因子了,因子之间也有因子的关系 建议用更朴素的算法 for(i=1;i<n;i++) { if (n%i==0)
    A+
热门评论