您的位置:首页 > 其它

系统管理-第3部分 部署和预配置

2008-07-23 10:46 232 查看
亲密数是这样的:A的所有因子之和等于B ,B的所有因子之和也等于A。那么这两个数互为亲密数。

要求:A,B不能相同。

static void Main(string[] args)
{
for (int i = 1 ; i < 3000; i++)
{
Program p=new Program ();
int j = p.GetFamilyNumber(i);
if (j!=-1)
{
Console.WriteLine("{0}和{1}是亲密数",i,j);
}
}
}
/// <summary>
/// 得到一个数的所有因子之和
/// </summary>
/// <param name="x"></param>
/// <returns></returns>
public int GetFactors(int x)
{
int temp = 0;
for (int i = 1; i < x; i++)
{
if (x%i==0)
{
temp += i;
}
}
return temp;
}
//得到一个数的亲密数
public int GetFamilyNumber(int x)
{
int temp1 = GetFactors(x);//A的所有因子之和等于B
int temp2 = GetFactors(temp1);//B的所有因子之和等于C
if (x==temp2 &&temp1>temp2)//如果A=C,那么AB是亲密数,两个数不能相同前面算过的后面不能再算了
{
return temp1;
}
return -1;
}


本文出自 “Ajax的姑娘” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: