• c# 计算1-100之间的所有质数(素数)的和


    求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     }
    View Code
  • 相关阅读:
    【vijos】1768 顺序对的值(特殊的技巧)
    【vijos】1789 String(组合计数+奇怪的题)
    【vijos】1790 拓扑编号(拓扑+贪心)
    【vijos】1629 八(容斥原理+dfs)
    【vijos】1543 极值问题(数论+fib数)
    【vijos】1447 开关灯泡(高精度+特殊的技巧)
    【vijos】1164 曹冲养猪(中国剩余定理)
    【vijos】1882 石阶上的砖(中位数+特殊的技巧)
    【vijos】1881 闪烁的繁星(线段树+特殊的技巧)
    【vijos】1286 座位安排(状压dp)
  • 原文地址:https://www.cnblogs.com/zlp520/p/3551930.html
Copyright © 2020-2023  润新知