如何用java语言7语言寻找亲和数

如果两个数a和b,a的所有真因数之和等于b,b的所有真因数之和等于a,则称a,b是一对亲和数。
例如220和284,,。 分析: 首先得明确到底是什么是亲和数? 亲和数问题最早是由毕达哥拉斯学派发现和研究的。
他们在研究数字的规律的时候发现有以下性质特点的两个数:
220的真因子是:1、2、4、5、10、11、20、22、44、55、110;
284的真因子是:1、2、4、71、142。
而这两个数恰恰等于对方的真因子各自加起来的和(sum[i]表示数i 的各个真因子的和),即 220=1+2+4+71+142=sum[284], 284=1+2+4+5+10+11+20+22+44+55+110=sum[220]。
实现代码如下:int aNear[50010];
for(int n=1;n&50010;n++){
aNear[n] = 1;
for(int k = 2;k&25000;k++){
int j = k +
while(j&50000){
aNear[j] +=
for(int d=220;d&50010;d++){
if(aNear[d]&d&&aNear[d]&50000&&(d == aNear[aNear[d]])){
printf("\n");
printf("%d
%d",d,aNear[d]);
}该方法是从下到大判断某个数,假如该数是某个数的因子则加上去;
比如:当k为2时,就将2,4,6,8.....加上2
k为3时,将3,6,9,12.... 加上3依此类推,最终的到完整的数据
以上信息来自《程序员编程艺术》
没有更多推荐了,以下试题来自:
问答题 n<s&&divsum(s)==n
为您推荐的考试题库
你可能感兴趣的试题
1.问答题 pack()
event.paramString()
热门相关试卷
最新相关试卷&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
2040-亲和数(java)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=20401importjava.util.S23publicclassMain{4publicstaticvoidmain(String[]args){56Scannerscanner=newScanner(System.in);7n=scanner.nextInt();8while(n&0){9inta,b;10intsumA=1,sumB=1;11a=scan
http://acm.hdu.edu.cn/showproblem.php?pid=2040 1 import java.util.S 2 3 public class Main{ 4 public static void main(String[] args) { 5 6 Scanner scanner=new Scanner(System.in); 7 n=scanner.nextInt(); 8 while(n&0){ 9 int a,b;10 int sumA=1,sumB=1;11 a=scanner.nextInt();12 b=scanner.nextInt();13 for(int i=2;i&=a/2;i++){14 if(a%i==0)15 sumA+=i;16 }17 if(sumA==b){18 for(int i=2;i&=b/2;i++)19 if(b%i==0)20 sumB+=i;21 if(sumB==a)22 System.out.println(&YES&);23 else24 System.out.println(&NO&);25 }else26 System.out.println(&NO&);27 n--;28 }29 }30 }
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
新用户大礼包!
现在注册,免费体验40+云产品,及域名优惠!
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
2040-亲和数(java)相关信息,包括
的信息,所有2040-亲和数(java)相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
InternationalTime Limit:
MS (Java/Others)
Memory Limit:
K (Java/Others)
Total Submission(s): 25004
Accepted Submission(s): 14950Problem Description
古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为:
1+2+4+5+10+11+20+22+44+55+110=284。
而284的所有真约数为1、2、4、71、 142,加起来恰好为220。人们对这样的数感到很惊奇,并称之为亲和数。一般地讲,如果两个数中任何一个数都是另一个数的真约数之和,则这两个数就是亲和数。
你的任务就编写一个程序,判断给定的两个数是否是亲和数
输入数据第一行包含一个数M,接下有M行,每行一个实例,包含两个整数A,B; 其中 0 &= A,B &= 600000 ;
对于每个测试实例,如果A和B是亲和数的话输出YES,否则输出NO。
Sample Input
Sample Output
#include &cstdio&
#include &cstring&
int main (){
int n,suma,sumb,i,a,b;
scanf("%d",&n);
while(n--){
scanf("%d%d",&a,&b);
suma=sumb=0;
for(i=1;i&=a/2;++i)
if(a%i==0)
for(i=1;i&=b/2;++i)
if(b%i==0)
if(suma==b && sumb==a)
printf("YES\n");
printf("NO\n");
HDU2040——亲和数
没有更多推荐了,/*古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为:
1+2+4+5+10+11+20+22+44+55+110=284。
而284的所有真约数为1、2、4、71、 142,加起来恰好为220。人们对这样的数感到很惊奇,并称之为亲和数。一般地讲,如果两个数中任何一个数都是另一个数的真约数之和,则这两个数就是亲和数。
你的任务就编写一个程序,判断给定的两个数是否是亲和数
输入数据第一行包含一个数M,接下有M行,每行一个实例,包含两个整数A,B; 其中 0 &= A,B &= 600000 ;
对于每个测试实例,如果A和B是亲和数的话输出YES,否则输出NO。
Sample Input
Sample Output
#include&iostream&
int sum(int number)
int sum=0;
for(i=1;i&i++)
if(number%i==0)
sum=sum+i;
int main()
int i,a,b,n;
while(n--)
cin&&a&&b;
if(sum(a)==b)
cout&&"YES"&&
cout&&"NO"&&
判断两个数是否为亲和数
C++刷题——1912: 亲和数
hdu2040 亲和数(C语言)
如何判断亲和数
HDU 2040--亲和数【水题】
C语言求亲和数
N - 亲和数
(6)亲和数问题
亲和数(220/284)
没有更多推荐了,

我要回帖

更多关于 java语言代码大全 的文章

 

随机推荐