用JAVA语言编写下面的题目: 一个数如果恰好等于它的因子之和,这个数称为“完数”。编写一个应用程

用JAVA语言编写下面的题目:
一个数如果恰好等于它的因子之和,这个数称为“完数”。编写一个应用程序,求1000之内的所有完数。

按照你的要求打印1000以内完数的Java程序如下:

public class WanQuanShu {
 public static void main(String[] args) {
  int i,j,k;      //定义整型变量i,j,k 用于for循环
  int []sector=new int[32];     //定义整型数组用于存放完全数的每个因子
  for(i=1;i<=1000;i++){         //for循环寻找1000以内的完全数  
   int sum=1;                //定义整型变量sum用于保存完全数因子的和
   int sectorcount=1;        //定义整型变量sectorcount用于完全数因子个数计数
   sector[0]=1;     //初始化数组的第一个元素,因为1特殊所以要单独赋值
   for(j=2;j<i;j++){//for循环找出从2到i的数i的所有因子
    if(i%j==0){           //看i能不能被j整除,如果能即等于0则j是数i的一个因子
     sector[sectorcount++]=j;  //把因子j赋给存放完全数因子的数组sector
     sum=sum+j;                //把数i的因子j都累加起来
    }
   }
   
   if(i==sum){      //如果数i和它的因子的和相等,那么i就是完全数
    System.out.print(i+"=");    //打印输出完全数
    for(k=0;k<sectorcount;k++){ //for循环列出全部完全数i的全部因子
     if(k==sectorcount-1){   //如果是最后一个因子则打印最后一个因子
      System.out.print(sector[k]); //打印最后一个因子
     }else{                           //否则打印其他因子和加号
      System.out.print(sector[k]+"+");//打印其他因子和加号
     }
    }
    System.out.println();               //打印换行符
   }
  }
 }
}

运行结果:

1=1
6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248

追问

1不是完数,唉😔

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-04-14

第2个回答  2016-04-14
public class demo
{
static boolean IsPerfectNum(int n)
{
int sum = 0;
for(int i = 1; i < n; i++)
if(n % i == 0)
sum += i;
return sum == n;
}

public static void main(String[] args)
{
for(int i = 1; i < 1000; i++)
if(IsPerfectNum(i))
System.out.println(i);
}
}

...一个数如果恰好等于它的因子之和,这个数称为“完数”。编写一个...
如果能即等于0则j是数i的一个因子 sector[sectorcount++]=j; \/\/把因子j赋给存放完全数因子的数组sector sum=sum+j; \/\/把数i的因子j都累加起来 } } if(i==sum){ \/\/如果数i和它的因子的和相等,那么i就是完全数 System.out.print(i+"="); \/\/打印输出完...

java 编程题集
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。【程序10】题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?【程序11】题目:有1、2、3、4个数字,能...

C语言设计题目指导
题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程 找出1000以内的所有完数。1. 程序分析:请参照程序<--上页程序14. 2.程序源代码:main(){static int k[10];int i,j,n,s;for(j=2;j<1000;j++) { n=-1; s=j; for(i=1;i<j;i++) { if((j%i)==0) {...

一个数如果恰好等于它的因子之和,这个数就称为完数,编写一个JAVA程序10...
源代码如下:include <stdio.h> main(){ int i,j;int sum;for(i=1;i<=1000;i++){ sum=0;for(j=1;j<i;j++){ if(i%j==0)sum+=j;} if(sum==i){ printf("%d its factors are ",i);for(j=1;j

...的完数:一个数如果恰好等于它的因子之和,这个数就称为 "完数...
for (int j = 1; (j * j) <= i; j++) {\/\/j做除数,√n复杂度,减少一半的计算量 if (i % j == 0) {\/\/可以整除,为其因子 sum = j + (i \/ j) + sum;\/\/因子之和 } } if ((sum - i) == i) cout << "1000以内的完数:" << i << endl;\/\/因子之和减去其...

题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。
题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。 例如6=1+2+3.编程找出1000以内的所有完数。用Java代码实现。... 例如6=1+2+3.编程找出1000以内的所有完数。用Java代码实现。 展开  我来答 1个回答 #热议# 网文质量是不是下降了?

如果一个数等于他的所有的因子之和,这个数就称为“完数”,请编程找出...
即1000以内的完数只有6、28、496三个数字。用Java编写代码如下(只需修改N即可):publicclassPrefectnumber{ publicstaticvoidmain(Stringarg[]){ intN,m,s;N=1000;inti;System.out.println("小于"+N+"的完数有");for(i=1;i<=N;i++){ s=0;for(m=1;m...

什么叫完数?
一个数如果恰好等于除它本身外的因子之和,这个数就称为"完数",也叫“完美数”。例如6=1+2+3.(6的因子是1,2,3) [编辑本段]代码求1000以内的完数的C++语言代码如下:include<iostream> using namespace std;int main(){int n=1000;int r=0,j,i;for(i=1;i<=n;i++){r=0;for(j...

100以内一个数如果恰好等于他的因子之和,这个数就称为'完数'
int i,sum=0;m=0;j,xx[100],jj[100];for(i=1;i<100;i++){ for(j=1;j<i;j++)if(i%j==0)\/\/选出所有因数 xx[t++]=j;\/\/将因数存入数组xx for(j=0;j<t;j++)sum+=xx[j];\/\/把所有因数相加 if(i==sum)\/\/判断因数和是否等于这个数 jj[m++]=i;\/\/相等的话存入数组...

java的经典例题
【程序9】 题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。【程序10】 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?【程序11】 题目:有1、2...

相似回答