一个数如果恰好等于它的因子之和,这个数就称为完数。例如6的因子为1、2、3,而6=1+2+3,因此6是完数。编程找出1000之内的所有完数,当单击“查找”按钮时,按下面格式输出所有的完数和其因子:“6是一个完数:6=1+2+3”。
程序界面及属性
程序源代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp7
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
int i, j,sum;
for (i = 2; i < 1000; i++)
{
sum = 0;
for (j = 1; j <= i / 2; j++) //运行至i/2处
if (i % j == 0) sum += j; //把余数相加
if (sum == i) //判断和是否等于原数
{
sb.Append(i + "是一个完整数:" + i + "=1");
for (j = 2; j <= i/ 2; j++)
if (i % j == 0) sb.Append("+" + j); //输出因子
sb.Append("\n");
}
}
lblShow.Text = sb.ToString(); //把结果放入lblShow中
}
}
}
运行结果