黑马程序员技术交流社区
标题:
同学问我一道考研题,做了半天终于弄好了分享一下
[打印本页]
作者:
Mekor
时间:
2014-4-26 00:28
标题:
同学问我一道考研题,做了半天终于弄好了分享一下
题目要求:
请写一个程序,给出指定整数范围【a ,b】内所有的完数,一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数,例如6是完数,因为6=1+2+3。
输入说明:共一组数据,为两个正整数,分别表示a和b(1<a<b<10^5)。
输出说明:指定范围内的所有完数,每个数占一行。
我写的代码:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入开始数字");
int start = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入结束数字");
int end = Convert.ToInt32(Console.ReadLine());
for (int i = start; i <= end; i++)
{
isWanShu(i);
}
Console.ReadLine();
}
public static bool isWanShu(int num)
{
int s = 0;//和
for (int i = 1; i < num; i++)
{
if ((num % i) == 0)
s = s + i;
}
if (num == s)
{
string str = s.ToString() + "=";
for (int i = 1; i < s; i++)
{
if ((s % i) == 0)
{
str = str + "+" + i.ToString();
}
}
Console.Write(str + "\r\n");//输出该数所有的约数
return true;
}
return false;
}
}
复制代码
作者:
鲤鱼
时间:
2014-4-26 03:10
{:3_46:}挽
作者:
continue
时间:
2014-4-26 08:22
for循环中结束条件没必要是 i<num,i<=num/2就够了,如果连num/2都不能够整除的话,后面的就更不可能被整除了
作者:
Mekor
时间:
2014-4-26 09:28
continue 发表于 2014-4-26 08:22
for循环中结束条件没必要是 i
好的,谢谢指点。。。
作者:
枫叶零渡
时间:
2014-4-26 09:37
谢谢分享,学习下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2