繁体   English   中英

如何将素数检查器实现到我需要计算素数的数组中?

[英]How to implement a prime number checker into an array where i need to count the number of primes?

我有一个包含 20 个数字的数组,我必须计算数组中的素数。 我想出了这段代码(它是一个简单的素数检查器),但是当我尝试使用for循环将它实现到数组中时,它不起作用。

int primcounter = 0;

for (int i = 0; i <= array.Length; i++)
{
    int divider = 0;

    for (int j = 1; j <= array[i]; j++)
    {
        if (array[i] % j == 0)
        {
            divider++;
        }
        else
        { }
    }

    if (divider == 2)
    {
        primcounter++;
    }
}

Console.WriteLine(primcounter + "Primes are in the array");

目标是测试数组中的每个数字是否是素数,如果是,则将primcounter增加1

您可以使用 linq 作为扩展方法实现

using System;
using System.Linq;
using System.Collections.Generic;

namespace Test
{
    public static class Math
    {
        public static bool IsPrime(this int candidate)
        {
            for (int denominator = 2; denominator < candidate - 1; denominator++) 
                if (candidate % denominator == 0) return false;
            return true;
        }
    }

    class Program
    {

        static void Main(string[] args)
        {
            Console.WriteLine(new List<int>() { 
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 
                11, 12, 13, 14, 15, 16, 17, 18, 19, 20 
            }.Where(candidate => candidate.IsPrime()).Count());
            Console.ReadKey();
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM