iNOC产品部--完全数计算
2015-04-22 20:14
204 查看
package oj.test;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Scanner;
public class Demo4 {
/**
* @iNOC产品部--完全数计算
* 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),
* 恰好等于它本身。
* 例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
* 给定函数count(int n),用于计算n以内(含n)完全数的个数。
* 计算范围, 0 < n <= 500000返回n以内完全数的个数。
* 异常情况返回-1
*
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int sum = count(n);
if(sum>0)
sop(sum);
else
sop(-1);
}
private static int count(int n) {
int count =0;
for(int i=2;i<=n;i++){
if(wanbei_method(i))
count++;
}
return count;
}
private static boolean wanbei_method(int x) {
LinkedList<Integer> list = new LinkedList<Integer>();
for(int i=1;i<x;i++){
if(x%i==0)
list.add(i);
}
int sum = 0;
Iterator<Integer> it = list.iterator();
while(it.hasNext()){
sum = sum+it.next();
}
if (sum == x)
return true;
else
return false;
}
private static void sop(Object obj) {
System.out.println(obj);
}
}
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Scanner;
public class Demo4 {
/**
* @iNOC产品部--完全数计算
* 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),
* 恰好等于它本身。
* 例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
* 给定函数count(int n),用于计算n以内(含n)完全数的个数。
* 计算范围, 0 < n <= 500000返回n以内完全数的个数。
* 异常情况返回-1
*
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int sum = count(n);
if(sum>0)
sop(sum);
else
sop(-1);
}
private static int count(int n) {
int count =0;
for(int i=2;i<=n;i++){
if(wanbei_method(i))
count++;
}
return count;
}
private static boolean wanbei_method(int x) {
LinkedList<Integer> list = new LinkedList<Integer>();
for(int i=1;i<x;i++){
if(x%i==0)
list.add(i);
}
int sum = 0;
Iterator<Integer> it = list.iterator();
while(it.hasNext()){
sum = sum+it.next();
}
if (sum == x)
return true;
else
return false;
}
private static void sop(Object obj) {
System.out.println(obj);
}
}
相关文章推荐
- 华为oj iNOC产品部--完全数计算
- iNOC产品部--完全数计算
- [华为OJ--C++]036-iNOC产品部–完全数计算
- 华为oj inoc产品部--完全数计算
- 华为OJ——iNOC产品部--完全数计算
- 【华为OJ】【036-iNOC产品部--完全数计算】
- iNOC产品部--完全数计算
- 华为oj 初级 iNOC产品部--完全数计算
- 华为机试:iNOC产品部--完全数计算、杨辉三角的变形
- 华为OJ——iNOC产品部--完全数计算
- 华为OJ 初级:iNOC产品部--完全数计算
- 华为OJ基础篇-iNOC产品部–完全数计算
- 华为oj_iNOC产品部--完全数计算
- [编程题]iNOC产品部--完全数计算
- 【华为OJ】iNOC产品部--完全数计算
- 华为OJ——iNOC产品部--完全数计算
- 完全数计算
- 阿里云异构计算产品家族之数据智能_加速AI智能创新
- 蛙蛙推荐:[算法练习]最长不完全匹配子串频率计算
- 阿里云战略投入边缘计算技术领域 发布首款产品Link Edge