真因数

真因数相亲数问题 220 的真因数之和为 1 2 4 5 10 11 20 22 44 55 110 284 284 的真因数之和为 1 2 4 71 142 220 A 的真因数之和为 B B 的真因数之和为 A

大家好,我是讯享网,很高兴认识大家。

相亲数问题:

       220的真因数之和为1+2+4+5+10+11+20+22+44+55+110=284

       284的真因数之和为1+2+4+71+142=220

      A的真因数之和为B,B的真因数之和为A,像A,B这样的数称作相亲数,求以内的数。


思路:重点是如何求解真因数之和,可以用穷举法,从2开始一个一个判断。可以先判断a的真因数之和B,接着算B的真因数之和,看结果是不是与A的值相同。


讯享网

           求真因数:

//求数的num的真因数之和 private static int GetSum(int num) { int sum=1; int limit = (int)Math.sqrt(num); for(int i=2;i<=limit;i++){ if(num%i==0) sum+=i+num/i; } return sum; }

讯享网源代码:

讯享网public class Getsum { public static void main(String args[]){ Run(2,); } private static void Run(int i, int j) { int perfertCount = 0; int Count = 0; for(int num = i;num<=j;num++){ int sum1=GetSum(num); if(sum1 >= num){ int sum2 = GetSum(sum1); if(sum2==num){ System.out.printf("%-5d和%-5d是一对相亲数\n",sum1,sum2); Count++; } } } System.out.print("共有"+Count+"对相亲数"); } //求数的num的真因数之和 private static int GetSum(int num) { int sum=1; int limit = (int)Math.sqrt(num); for(int i=2;i<=limit;i++){ if(num%i==0) sum+=i+num/i; } return sum; } } 




小讯
上一篇 2025-02-21 20:51
下一篇 2025-01-28 13:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/30813.html