Java / C++ / C 亲密数
2018-03-07 21:13
260 查看
题目描述
两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。
输入
输出
3000以内的全部亲密数(输出格式:(A,B),不加换行,不加分隔符号)
一对亲密数只输出一次, 小的在前
样例输出
(220,284)(1184,1210)(2620,2924)
解析:
按照亲密数定义,要判断数a是否有亲密数,只要计算出a的全部因子的累加和为b,再计算b的全部因子的累加和为n,若n等于a则可判定a和b是亲密数。
计算数各因子的算法: 用a依次对i(i=1~a/2)进行模运算,若模运算结果等于0,则i为a的一个因子;否则i就不是a的因子。
(这原来就是一个C语言题,剩下两种语言都是我无聊的产物)
两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。
输入
输出
3000以内的全部亲密数(输出格式:(A,B),不加换行,不加分隔符号)
一对亲密数只输出一次, 小的在前
样例输出
(220,284)(1184,1210)(2620,2924)
解析:
按照亲密数定义,要判断数a是否有亲密数,只要计算出a的全部因子的累加和为b,再计算b的全部因子的累加和为n,若n等于a则可判定a和b是亲密数。
计算数各因子的算法: 用a依次对i(i=1~a/2)进行模运算,若模运算结果等于0,则i为a的一个因子;否则i就不是a的因子。
(这原来就是一个C语言题,剩下两种语言都是我无聊的产物)
#include<stdio.h> //C int main() { for(int i=1;i<3000;i++) //1-3000 { int sum1=0,sum2=0; //sum1是i的余数和,sum2是sum1的余数和 for(int j=1;j<=i/2;j++) { if((i%j)==0) sum1+=j; } for(int j=1;j<=sum1/2;j++) { if((sum1%j)==0) sum2+=j; } if(sum2==i&&i<sum1) //即sum1的余数和=原来的数,并且原数字小 printf("(%d,%d)",i,sum1); } }
#include<iostream> //c++ using namespace std; int main() { for(int i=1;i<3000;i++) { int b=0,n=0; for(int j=1;j<=i/2;j++) { if(!(i%j)) b+=j; } for(int j=1;j<=b/2;j++) { if(!(b%j)) n+=j; } if(n==i&&i<b) cout<<"("<<i<<","<<b<<")"; } }
package Oj; public class Main { public static void main(String[] args) { for(int i=1;i<3000;i++) { int b=0,n=0; for(int j=1;j<=i/2;j++) { if(i%j==0) b+=j; } for(int j=1;j<=b/2;j++) { if(b%j==0) n+=j; } if(n==i&&i<b) System.out.print("("+i+","+b+")"); } } }
相关文章推荐
- mac系统下配置Eclipse Java/C++ 开发环境
- Anders Hejlsberg谈C#、Java和C++中的泛型
- C++ & Java ——最长不下降序列—变式题
- cocos2d-html5 javascript 通过C++绑定,调用java方法
- Java调用C++动态链接库---JNAerator命令行生成Bridj的包
- java中的引用和C++中的指针的区别我的理解
- java下的socket通信与C/C++下的socket通信
- 比较C++和Java 二
- JAVA C# C/C++之比教学:编译机制
- Android NDK 开发 C++调用java数组 以及方法
- 学习《java编程思想》附录B 对比C++和Java
- java 与 c++ 、 C# 之间的区别与联系
- JNI(1)之java调用c++
- c++ 与 Java比较
- 【Java】关于Java中参数传递方式与C++的比较
- hdu4762Cut the Cake(概率+大数操作(java)+C++高精度模板)
- 从C++转向java——5、数组
- 【技术】C#、C++、JAVA中虚函数和抽象函数的概念对比
- C++和java通过Socket批量发送和接收文件(C++客户端发送,java服务端接收)
- Java与C/C++有什么区别