day 1 C#打卡
1.求1000以内的完数
using System;
namespace ConsoleApp8
{
class Program
{
static void Main(string[] args)
{
//输出1~1000的完数
Console.WriteLine("以下是1000内的完数:");
int i, j, sum, n = 1000;
for(i=2;i<=n;i++)//从2开始算完数,节省次数
{
sum = 0;//保证循环下一次清零sum
for(j=1;j<i;j++)//比如当i=6时,j=1,2,3,4,5。j永远比i小
{
if (i % j == 0)//遍历算j是否为i的因子
sum += j;//相加这些因子,例如6的因子为1,2,3(6不算进去)
}
if (sum == i)//当i=6时,sum也等于6
Console.WriteLine(i);
}
Console.ReadLine();
}
}
}
```csharp
扩展:输出因子
```using System;
namespace ConsoleApp8
{
class Program
{
static void Main(string[] args)
{
//输出6=1+2+3 (1000以内的完数)
int i, j, sum, n = 1000;
for (i = 2; i <= n; i++)
{
sum = 0;
for (j = 1; j < i; j++)
{
if (i % j == 0)
sum += j;
}
if (sum == i)
{
Console.Write(i+"=1");
for (j = 2; j < i; j++)
if(i%j==0)
Console.Write("+"+j);
Console.WriteLine();
}
}
Console.ReadLine();
}
}
}