Java找出1000以内的所有完数

完全数:(Perfect Number)又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为“完全数”。
需求:判断并输出1000以内的所有完全数。

题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。

public class Wanshu {
 public static void main(String[] args)
 {
   int s;
   for(int i=1;i<=1000;i++)
   {
    s=0;
    for(int j=1;j<i;j++)
      if(i % j==0)
        s=s+j;
      if(s==i)
       System.out.print(i+" ");
   }
   System.out.println();
 }
}

方法二

public class PerfectNumber { 

  public static void main(String[] args) {
    System.out.println("1000以内的所有完数有:");
    for (int i = 2; i < 1000; i++) {// 遍历1000以内的所有整数
      int sum = 0;// 定义和变量
      for (int j = 1; j < i; j++) {
        if (i % j == 0) {// 满足是i的因子,就累加
          sum += j;
        }
      }
      if (sum == i) {// 满足因子之和等于i就打印该完数
        System.out.print(i + " ");
      }
    }
  }
} 
(0)

相关推荐

  • Java找出1000以内的所有完数

    完全数:(Perfect Number)又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它的因子之和,则称该数为"完全数". 需求:判断并输出1000以内的所有完全数. 题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 ".例如6=1+2+3.编程 找出1000以内的所有完数. public class Wanshu { public static void main(St

  • C语言例题之输出1000以内的所有完数

    一个数如果恰好等于它的各个因子之和,这个数就称为“完数”.例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”.编程找出1000之内的所有完数,并按下面的格式输出其因子: 6 its factors are 1,2,3 #include "stdio.h" void main() { int i, j, sum, k; for (i = 2; i <= 1000; i++) { // 每判断一个数时,将sum置为0 sum = 0; // 这个地方不写"=&q

  • php找出指定范围内回文数且平方根也是回文数的方法

    本文实例讲述了php找出指定范围内回文数且平方根也是回文数的方法.分享给大家供大家参考.具体如下: 一.要求: 给出两个数值X和Y,统计在这个区间里的回文数,并且要求它们的平方根也是回文数.其中 1<= x <= y < 10 14 二.解决方法: <?php error_reporting(E_ALL); ini_set("display_errors", 1); //避免超时 set_time_limit(0); $t1=microtime(); funct

  • python找出完数的方法

    如下所示: # -*- coding: utf-8 -*- # 要求:用python方法找出1000以内的所有完数,并输出. def f(n): list = [] for i in range(2, n + 1): for j in range(2, i / 2): if i % j == 0 and j <= (i / j): list.append(j) list.append(i / j) if sum(list) + 1 == i: print i list = [] if __nam

  • Java学习-打印1-1000以内的水仙花数代码实例

    水仙花数:水仙花数是三位数,它的各位数字的立方和等于这个三位数本身,例如:370=33+73+00:371=33+73+13,370.371就是一个水仙花数 注意:要判断一个三位数是不是水仙花数,得先取得这个三位数的的个位,十位和百位 public class MyTest { public static void main(String[] args) { /* 打印1-1000的水仙花数 水仙花数:例如 153=1*1*1+5*5*5+3*3*3*/ //定义标记,水仙花数起始值位0 int

  • java实现找出两个文件中相同的单词(两种方法)

    java实现找出两个文件中相同的单词,具体代码如下所示: package com.zy.DesignPrinciples.singleresponsibility; import javax.print.DocFlavor; import java.io.BufferedReader; import java.io.FileReader; import java.util.HashSet; /** * @ClassName: ReaderComplete * @Author: Tiger * @

  • java使用多线程找出最大随机数

    本文实例为大家分享了java用多线程找出最大随机数的具体代码,供大家参考,具体内容如下 问题: 系统随机生成 10000 个数,构造 5 个线程并利用它们的 Join 方法计算这些随机数的最大值. 思路: 1).定义一个全局变量AllMax来记录在最大值 2).自定义myThread类继承自Thread,重写run函数. 3).Run函数,循环两千次,每次产生一个10000以内的随机数,与AllMax进行比较,若大于AllMax,则立即将AllMax更新. 4).实例化MyThread,创建五个

  • Java使用正则表达式实现找出数字功能示例

    本文实例讲述了Java使用正则表达式实现找出数字功能.分享给大家供大家参考,具体如下: 1.问题: String str = "fjd789klsd908434jk#$$%%^38488545",从中找出78990843438488545,请找到解决办法 2.实现代码: /** * */ package com.you.model; /** * @author YouHaidong * */ public class FindNumber { /** * 字符串str */ publi

  • Java实现从字符串中找出数字字符串的方法小结

    本文实例总结了Java实现从字符串中找出数字字符串的方法.分享给大家供大家参考,具体如下: int start = 0; String numStr = null; for (int j = 0; j < valuesStr.length() - 1; j++) { if (Character.isDigit(valuesStr.charAt(j)) == false && Character.isDigit(valuesStr.charAt(j + 1)) == true) { s

  • Java生成10个1000以内的随机数并用消息框显示数组内容然后求和输出

    本文最终结果大概是这样的,使用java技术随机生成10个数,然后填充一个数组并在消息框中显示数组内容,接着对数组求和输出,将结果显示在消息框中. 设计思路:可以先用Math.Random()*1000生成1000以内随机数,然后依次存入数组中,然后读取数组,输出随机数,同时进行加法计算,最后将所有结果以消息框形式输出. 程序流程图: 源代码: package 随机数求和; import javax.swing.*; public class Sum { public static void ma

随机推荐