相亲数问题:
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; } }

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