一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子

问题 1017: [编程入门]完数的判断

时间限制: 1Sec 内存限制: 128MB 提交: 9159 解决: 4243

题目描述

一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子

输入

N

输出

? its factors are ? ? ?

样例输入

1000

样例输出

6 its factors are 1 2 3
28 its factors are 1 2 4 7 14
496 its factors are 1 2 4 8 16 31 62 124 248 二话不说上代码:

import java.util.Scanner;
import java.math.*;
public class Main {
public static void main(String[] args) {
  Scanner in = new Scanner(System.in);
  int n = in.nextInt();

   //循环每一个是数
  for(int i=1;i<=n;i++){
  int sum=0;
  for(int j=1;j<=i/2;j++){
  //一个数的最大因子不超过这个数的一半
  if(i%j==0)
  sum+=j;
}

   //判断因子的和是否和这个数相等,若相等则输出
  if(sum==i){
    System.out.printf(i + " " + "its" + " " + "factors" + " " + "are" + " " );

     //循环这个完数输出这个完数的每个因子
    for(int k=1;k<=i/2;k++){
    if(sum%k==0){
    System.out.printf("%d ", k);
}
}
  System.out.println();

}
}
}
}

 

原文地址:https://www.cnblogs.com/xuesujun/p/11225192.html

时间: 2024-08-06 09:03:51

一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子的相关文章

一个数如果恰好等于它的因子之和,这个数就称为&quot;完数&quot;。 例如,6的因子为1、2、3,而6=1+2+3,因此6是&quot;完数&quot;。 编程序找出N之内的所有完数,

题目描述 一个数如果恰好等于它的因子之和,这个数就称为"完数". 例如,6的因子为1.2.3,而6=1+2+3,因此6是"完数". 编程序找出N之内的所有完数,并按下面格式输出其因子: 输入 N 输出 ? its factors are ? ? ? 样例输入 1000 样例输出 6 its factors are 1 2 3 28 its factors are 1 2 4 7 14 496 its factors are 1 2 4 8 16 31 62 124

码农谷 找出N之内的所有完数

题目描述 一个数如果恰好等于它的因子之和,这个数就称为"完数". 例如,6的因子为1.2.3,而6=1+2+3,因此6是"完数". 编程序找出N之内的所有完数,并按下面格式输出其因子. 输入描述 N 输出描述 ? its factors are ? ? ? 样例 输入: 1000 输出: 6 its factors are 1 2 3 28 its factors are 1 2 4 7 14 496 its factors are 1 2 4 8 16 31 62

两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

package C; public class Bisai { public static void main(String[] args) { String a="xyz",b="",c=""; for (int i = 0; i < 3; i++) { if(a.substring(i,i+1).equals("x")||a.substring(i,i+1).equals("z")) { cont

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

题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 ".例如6=1+2+3.编程     找出1000以内的所有完数. 1 package day11_2; 2 3 public class lianxi09 { 4 public static void main(String[] args) { 5 6 for (int i = 1; i < 1000; i++) { 7 int sum=0; 8 for (int j = 1; j <i; j++) { 9 10

找出1000以内的所有完数

题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 ".例如6=1+2+3.编程 找出1000以内的所有完数. 1 package com.li.FiftyAlgorthm; 2 3 /** 4 * 题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 ".例如6=1+2+3.编程 找出1000以内的所有完数. 5 * 6 * @author yejin 7 * 8 */ 9 public class Wanshu { 10 public static

java实现找出1000以内的所有完数

/**  *   *题目:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程 找出1000以内的所有完数  *  */ public class Test9 {     public static int perfact(int n) {         int s = 0;         for (int i = 1;i <= n / 2;i++) {             if (n % i == 0) {                 s 

【Java】编程找出1000以内的所有完数。

1 package com.xt.homework.hw09; 2 /** 3 * 5. 一个正整数,如果恰好等于除它本身外的所有因子之和,这个数就称为"完数". 4 * 例如6=1+2+3,编程找出1000以内的所有完数. 5 * 6 * 7 * @author 天耀二期 8 * 杨勃隆 9 */ 10 public class HomeWork05 { 11 public static void main(String[] args){ 12 { 13 int i,j,k; 14

编写一个程序找出100~999之间所有的水仙花数

如果一个3位数等于其各位的立方和,称该数为水仙花数. 如,所以407是一个水仙花数,编写一个程序找出100~999之间所有的水仙花数. 1 #include<stdio.h> 2 #include<stdlib.h> 3 //判断水仙花数,是则返回1 4 int isNarcissus(int n); 5 6 int main() 7 { 8 int i; 9 for(i = 100; i < 1000; i++) 10 if(isNarcissus(i)) 11 print

一个整型数组里除了两个不同数字之外,其它的数字都出现了两次。请写程序找出这两个只出现一次的数字。

曾经做过一道水题找出除了一个数字之外,其他数字都有2个.直接异或 最后结果就是那个数. 现在变成存在2个不一样的数字,假设成x,y,那么可以O(n)求出x^y,因为x,y不同,所以异或的结果不为0,看成2进制数,那么找到第一位为1 的位置,将这个位置设置为划分点,数组里所有这个位置为1 的异或一次,所有为0的再异或一次,最终求出的两个即为两个独特的数字. #include <stdio.h> #include <string.h> #include <algorithm>