Java 添加用户输入数的因子

Java 添加用户输入数的因子,java,Java,我试图添加用户提供的数字的所有因子。例如,如果用户输入5,则输出应为:“5的因子之和为6。” 我想不出如何添加这些数字。以下是我尝试过的: int i = 1; int count = 0; int sum = 0; while(i <= num) { sum = i + 1; if(num % i == 0) { System.out.println(i + " is a factor of "+num+"."); count++;

我试图添加用户提供的数字的所有因子。例如,如果用户输入5,则输出应为:“5的因子之和为6。” 我想不出如何添加这些数字。以下是我尝试过的:

int i = 1;
int count = 0;
int sum = 0;
while(i <= num) 
{
   sum = i + 1;
   if(num % i == 0)
   {
       System.out.println(i + " is a factor of "+num+".");
       count++;
   }

    i++;
}  

 System.out.println(num+" has "+count+" factors.");
 System.out.println("The sum of all of the factors of "+num+" is "+sum);
inti=1;
整数计数=0;
整数和=0;

虽然(i您的代码中有一个逻辑错误。您基本上是在循环中每次重置总和,而不是将因子累加在一起以得到一个运行总数。因此,在循环的最后一次迭代中,您将得到最后检查的数字加上一个。要修复该错误,请删除此行:

sum = i + 1;
并将此行添加到
if
条件中:

sum += i;
代码应该如下所示:

int i = 1;
int count = 0;
int sum = 0;
while(i <= num) 
{
   if(num % i == 0)
   {
       System.out.println(i + " is a factor of "+num+".");
       count++;
       sum += i;
   }
   i++;
}  

System.out.println(num+" has "+count+" factors.");
System.out.println("The sum of all of the factors of "+num+" is "+sum);        
但是5是素数。这里有一个更有趣的例子,有更多的因素:
n=8

1 is a factor of 8.
2 is a factor of 8.
4 is a factor of 8.
8 is a factor of 8.
8 has 4 factors.
The sum of all of the factors of 8 is 15

注意:您的算法可以优化。提示:当您找到一个因子时,您可以通过将输入数除以它来轻松确定另一个因子。我将剩下的优化留给您作为练习。祝您愉快!

您的代码中有一个逻辑错误。您基本上是通过循环每次重置总和,而不是累积相加这些因素加在一起可以得到一个运行总数。因此,在循环的最后一次迭代中,您将得到最后一次检查的数字加上一个。要修复此错误,请删除此行:

sum = i + 1;
并将此行添加到
if
条件中:

sum += i;
代码应该如下所示:

int i = 1;
int count = 0;
int sum = 0;
while(i <= num) 
{
   if(num % i == 0)
   {
       System.out.println(i + " is a factor of "+num+".");
       count++;
       sum += i;
   }
   i++;
}  

System.out.println(num+" has "+count+" factors.");
System.out.println("The sum of all of the factors of "+num+" is "+sum);        
但是5是素数。这里有一个更有趣的例子,有更多的因素:
n=8

1 is a factor of 8.
2 is a factor of 8.
4 is a factor of 8.
8 is a factor of 8.
8 has 4 factors.
The sum of all of the factors of 8 is 15

注意:您的算法可以优化。提示:当您找到一个因子时,您可以通过将输入数除以它来轻松确定另一个因子。我将其余的优化留给您作为练习。祝您愉快!

发布您迄今为止尝试过的内容很好。您很接近。:)发布您迄今为止尝试过的内容很好。你很接近。:)