[英]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.