计算1-100之间的的常用算法

计算1-100之间的所有奇数的和
class Program

{

static void Main(string[] args)

{

int sum= GetOdd(1,100);

Console.WriteLine("1-100之间所有奇数整数和{0}",sum);

Console.ReadKey();

}

/// <summary>

/// 奇数和

/// </summary>

/// <param name="p1"></param>

/// <param name="p2"></param>

/// <returns></returns>

private static int GetOdd(int p1, int p2)

{

int sum = 0;

for (int i = p1; i <= p2; i++)

{

if (i%2!=0)

{

sum += i;

}

}

return sum;

}

}

 

 


求1-100之间的所有质数(素数)的和:
所以先必须知道什么是质数?
一个数是不是素数   “素数”是指除了能被1和自身整除外,不能被任何其它整数整除的自然数。
然后知道有哪些是质数:
记忆的方法:
100以内质数记忆法
100以内的质数共有25个,这些质数我们经常用到,可以用下面的两种办法记住它们。
一、规律记忆法
首先记住2和3,而2和3两个质数的乘积为6。100以内的质数,一般都在6的倍数前、后的位置上。如5、7、11、13、19、23、29、31、37、41、43……只有25、35、49、55、65、77、85、91、95这几个6的倍数前后位置上的数不是质数,而这几个数都是5或7的倍数。由此可知:100以内6的倍数前、后位置上的两个数,只要不是5或7的倍数,就一定是质数。根据这个特点可以记住100以内的质数。
二、分类记忆法
我们可以把100以内的质数分为五类记忆。
第一类:20以内的质数,共8个:2、3、5、7、11、13、17、19。
第二类:个位数字是3或9,十位数字相差3的质数,共6个:23、29、53、59、83、89。
第三类:个位数字是1或7,十位数字相差3的质数,共4个:31、37、61、67。
第四类:个位数字是1、3或7,十位数字相差3的质数,共5个:41、43、47、71、73。
第五类:还有2个持数是79和97。
1-100之间的质数和:1060class Program

{

private static void Main(string[] args)

{

int sum = GetSumPrime(1, 100);

Console.WriteLine("1-100之间的质数和是{0}",sum);

Console.ReadKey();

}

/// <summary>

/// 求质数和

/// </summary>

/// <param name="p1"></param>

/// <param name="p2"></param>

/// <returns></returns>

private static int GetSumPrime(int p1,int p2)

{

int sum = 0;

for (int i = p1; i <= p2; i++)

{

if (IsNo(i))

{

sum += i;

}

}

return sum;

}

/// <summary>

/// 判定是否为质数

/// </summary>

/// <param name="number"></param>

/// <returns></returns>

private static bool IsNo(int number)

{

if (number<2)

{

return false;

}

for (int i = 2; i < number; i++)

{

if (number%i == 0)

{

return false;

}

}

return true;

}

}

 

posted @ 2014-12-02 16:15  觉缘168  阅读(692)  评论(0编辑  收藏  举报