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

djw10962000 2012-02-07 04:47:44
问题出在哪儿了?求大家帮忙,我是在找不到了,该怎么改进,在线等=====
/*题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程   找出1000以内的所有完数。   
*/

public class End1{
public static void main(String[]args){
for(int i = 0;i<=1000;i++){
int arr[] = new int[i];
for(int j = 1;j < i;j++){
if(i%j == 0){
int k = 0;
arr[k] = j;
k++;
}
}
int temp = 0;
for(int m = 0; m<arr.length;m++){
temp += arr[m];
}
if(i == temp){
System.out.print(i+" ");
}
}
}
}

...全文
2064 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
djw10962000 2012-02-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 shouct 的回复:]
public class End1{
public static void main(String[]args){
for(int i = 0;i<=1000;i++){
int arr[] = new int[i];
int k = 0;
for(int j = 1;j < i;j++){
if(i%j == 0){
arr[k] = j;
k++……
[/Quote]
谢谢了,1楼和2楼.太粗心了5555555
djw10962000 2012-02-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hfhf2006 的回复:]
这个比较简单

Java code



public class End1{
public static void main(String[]args)
{
for(int i = 0;i<=1000;i++)
{
int s=0;
for(int j = 1;j……
[/Quote]
这个我也写出来了,我想用我那个数组写,不过还是谢谢你哈!
打酱油BY 2012-02-07
  • 打赏
  • 举报
回复
这个比较简单


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



maliang18 2012-02-07
  • 打赏
  • 举报
回复
int k = 0;放在for(int j = 1;j < i;j++)这个循环前面,你每次都先k=0,改变的一直都是arr[0],数组其他值也一直是0
shouct 2012-02-07
  • 打赏
  • 举报
回复
public class End1{
public static void main(String[]args){
for(int i = 0;i<=1000;i++){
int arr[] = new int[i];
int k = 0;
for(int j = 1;j < i;j++){
if(i%j == 0){
arr[k] = j;
k++;
}
}
int temp = 0;
for(int m = 0; m<arr.length;m++){
temp += arr[m];
}
if(i == temp){
System.out.print(i+" ");
}
}
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧