数学问题——找“亲密数”
2017-06-18 16:13
246 查看
一、数学背景介绍:假设有a、b两个数,若a的因子之和等于b,b的因子之和等于a,并且a不等于b,则称a和b是一对亲密数。
二、要求编写代码实现找出给定范围以内的亲密数。
package com.js.math;
import java.util.Scanner;
/**
* 亲密数
* a的因子之和等于b,b的因子之和等于a
* @author js
*
*/
public class ClosePair {
public static void main(String[] args) {
int a,m;
int b;
System.out.println("请输入最大范围:");
Scanner scanner = new Scanner(System.in);
if(scanner.hasNext()){
m = scanner.nextInt();
for(a=1;a<m;a++){
for(b=1;b<a;b++){
if(getResult(a)==b&&getResult(b)==a){
System.out.println(a+"和"+b+"是一对亲密数...");
}
}
}
}
// System.out.println(getResult(1595));
// System.out.println(getResult(675));
}
public static int getResult(int a){
int result = 0;
for(int i =1;i<a/2+1;i++){
if(a%i==0)
result+=i;
}
return result;
}
}
二、要求编写代码实现找出给定范围以内的亲密数。
package com.js.math;
import java.util.Scanner;
/**
* 亲密数
* a的因子之和等于b,b的因子之和等于a
* @author js
*
*/
public class ClosePair {
public static void main(String[] args) {
int a,m;
int b;
System.out.println("请输入最大范围:");
Scanner scanner = new Scanner(System.in);
if(scanner.hasNext()){
m = scanner.nextInt();
for(a=1;a<m;a++){
for(b=1;b<a;b++){
if(getResult(a)==b&&getResult(b)==a){
System.out.println(a+"和"+b+"是一对亲密数...");
}
}
}
}
// System.out.println(getResult(1595));
// System.out.println(getResult(675));
}
public static int getResult(int a){
int result = 0;
for(int i =1;i<a/2+1;i++){
if(a%i==0)
result+=i;
}
return result;
}
}
相关文章推荐
- 数学问题:亲密数
- 计算机科学与技术学习心得之计算机理论的一个核心问题--续谈其他的一些计算数学(转载)
- 希尔伯特的二十三个数学问题
- 数学问题:正态分布
- 数学之美 系列十八 - 矩阵运算和文本处理中的分类问题
- 【数学之美系列十八 】矩阵运算和文本处理中的分类问题
- Gossip数学问题算法的程序实现
- 数学问题:正态分布
- 转载:数学工具常见问题集
- 数学之美 系列十七 闪光的不一定是金子 谈谈搜索引擎作弊问题(转载)
- 100个经典数学问题
- [数学模型]影院座位设计问题
- A*m+B*n=D问题的数学推导求解
- 100个著名初等数学问题 (ZZ from mitbbs)
- 希尔伯特的23个数学问题
- 数学建模(5)---煤矸石堆积问题
- 计算机科学与技术学习心得之计算机理论的一个核心问题--从数学谈起(转载)
- 数学符号编辑和浏览问题
- 数学之美 系列十七 闪光的不一定是金子 谈谈搜索引擎作弊问题
- 【数学之美 系列十七】 闪光的不一定是金子 谈谈搜索引擎作弊问题(Search Engine Anti-SPAM)