求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之間的質數和:1060

1 class Program 2 { 3 private static void Main(string[] args) 4 { 5 int sum = GetSumPrime(1, 100); 6 Console.WriteLine("1-100之間的質數和是{0}",sum); 7 Console.ReadKey(); 8 } 9 /// <summary> 10 /// 求質數和 11 /// </summary> 12 /// <param name="p1"></param> 13 /// <param name="p2"></param> 14 /// <returns></returns> 15 private static int GetSumPrime(int p1,int p2) 16 { 17 int sum = 0; 18 for (int i = p1; i <= p2; i++) 19 { 20 if (IsNo(i)) 21 { 22 sum += i; 23 } 24 } 25 return sum; 26 } 27 /// <summary> 28 /// 判定是否為質數 29 /// </summary> 30 /// <param name="number"></param> 31 /// <returns></returns> 32 private static bool IsNo(int number) 33 { 34 if (number<2) 35 { 36 return false; 37 } 38 for (int i = 2; i < number; i++) 39 { 40 if (number%i == 0) 41 { 42 return false; 43 } 44 } 45 return true; 46 } 47 }