尝试使用嵌套循环在c#中的两个给定值之间找到完美数
我试图在两个给定的数字之间找到一个完美的数字,例如1和50。不幸的是,我的代码将1和24打印为完全数 有人能纠正这个代码并解释他们做了什么吗 我是新来的编码,所以请不要告诉我关于列表和东西,我在这里寻求您的帮助,以了解我哪里出了问题,我可以如何改进它。如果你能改正这个密码,我将不胜感激尝试使用嵌套循环在c#中的两个给定值之间找到完美数,c#,perfect-numbers,C#,Perfect Numbers,我试图在两个给定的数字之间找到一个完美的数字,例如1和50。不幸的是,我的代码将1和24打印为完全数 有人能纠正这个代码并解释他们做了什么吗 我是新来的编码,所以请不要告诉我关于列表和东西,我在这里寻求您的帮助,以了解我哪里出了问题,我可以如何改进它。如果你能改正这个密码,我将不胜感激 class Program { static void Main(string[] args) { int n2 = int.Parse(Console.ReadLine());
class Program
{
static void Main(string[] args)
{
int n2 = int.Parse(Console.ReadLine());
int n3 = int.Parse(Console.ReadLine());
//int sum;
for (int i = n2; i < n3; i++)
{
int sum = 0;
for (int j = 1; j <= i; j++)
{
if (i % j == 0 )
sum = sum + j;
//Console.WriteLine(j);
if (sum == i )
{
Console.WriteLine("the sum is " + i);
}
}
}
Console.ReadLine();
}
}
类程序
{
静态void Main(字符串[]参数)
{
int n2=int.Parse(Console.ReadLine());
int n3=int.Parse(Console.ReadLine());
//整数和;
对于(int i=n2;i 对于(int j=1;j您需要从定义什么是完美数开始。完美数是一个正整数,它等于其正因子之和,不包括数字本身。让我们检查您的代码
for (int j = 1; j <= i; j++)
在这一点上,总和只能包含一部分正除数。您还需要查看整个除数列表。因此验证部分必须位于内部循环之外。例如
int n2 = int.Parse(Console.ReadLine());
int n3 = int.Parse(Console.ReadLine());
for (int i = n2; i < n3; i++)
{
int sum = 0;
for (int j = 1; j < i; j++) // you need to exclude the number itself. So use Loop condition j <i, instead of j <=i
{
if (i % j == 0 )
{
sum = sum + j;
}
}
if (sum == i ) // Validate the sum with the number only after calculating sum of all divisors.
{
Console.WriteLine("the sum is " + i);
}
}
intn2=int.Parse(Console.ReadLine());
int n3=int.Parse(Console.ReadLine());
对于(int i=n2;i 对于(int j=1;j等于其正除数之和,排除数字本身。让我们检查您的代码
for (int j = 1; j <= i; j++)
在这一点上,总和只能包含一部分正除数。您还需要查看整个除数列表。因此验证部分必须位于内部循环之外。例如
int n2 = int.Parse(Console.ReadLine());
int n3 = int.Parse(Console.ReadLine());
for (int i = n2; i < n3; i++)
{
int sum = 0;
for (int j = 1; j < i; j++) // you need to exclude the number itself. So use Loop condition j <i, instead of j <=i
{
if (i % j == 0 )
{
sum = sum + j;
}
}
if (sum == i ) // Validate the sum with the number only after calculating sum of all divisors.
{
Console.WriteLine("the sum is " + i);
}
}
intn2=int.Parse(Console.ReadLine());
int n3=int.Parse(Console.ReadLine());
对于(int i=n2;i 对于(int j=1;j