①C#,利用数组求一个范围内的质数

            /*质数(prime number)又称素数,有无限个。除了1和它本身以外不再有其他的因数;否则称为合数。
             * 根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;
             * 而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。最小的质数是2。*/

            int N = 100;
            bool[] a = new bool[N+1];//此初始化可以让数组里的值从1开始,而不是从0开始,  使用布尔型可以利用真或者假排除掉一些数
            for (int i = 2; i <= N; i++) a[i] = true;//初始化a[i]里所有的值
            for (int i = 2; i < N; i++)//
            {
                if (a[i]) //以下全部赋值为假的数排除,可省略梅必要的循环
                    for (int j = i * 2; j <= N; j += i)
                    a[j] = false;// 第一步,把所有小于100的倍数全部为假
                                     //以上循环:i=2,j=i*2;j<=100;j+2;j<=100;j+2;....
            }                       //                 4         6            8  .. ...  直到得出来的数大于100为止全部赋值为假
                                    //                i=3,j=i*2;j<=100;j+3;j<=100;j+3;.....
                                   //                  6         9            12 ......  直到得出来的数大于100为止全部赋值为假
            for (int i = 2; i <= N; i++)
                if (a[i]) Console.WriteLine(i + " ");//遍历输出不为假的数
        }

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值