【发布时间】:2011-05-06 09:03:33
【问题描述】:
我想知道是否可以通过在 C# 中使用模数来找到数字的最大素数。换句话说,如果i % x == 0 那么我们可以打破for 循环或类似的东西,其中x 等于所有低于我们i 值的自然数。
如何将all natural numbers below our i value 指定为等于我们的 x 变量?如果您知道我在说什么,为每个整数写出条件会变得有点乏味。
顺便说一句,我确信在 C# 中有一个 远 更简单的方法可以做到这一点,所以如果你有想法,请告诉我,但我也想尝试用这种方式解决它,只是看看我是否可以用我的初学者知识来解决它。
如果你想看看我目前的代码,这是我目前的代码:
static void Main()
{
int largestPrimeFactor = 0;
for (long i = 98739853; i <= 98739853; i--)
{
if (true)
{
largestPrimeFactor += (int) i;
break;
}
}
Console.WriteLine(largestPrimeFactor);
Console.ReadLine();
}
【问题讨论】:
-
这段代码什么也不做。它将在第一次迭代期间中断。
for中的条件也是错误的。 -
en.wikipedia.org/wiki/Prime_number Sieve 可能是最简单的方法。做某种循环会花费太长时间。您基本上创建了一个列表并开始摆脱直到 sqrt(值)的下一个最小整数的所有倍数。所以,你从@ 2 开始,去掉所有能被 2 整除的东西,然后转到下一个数字 3。去掉所有能被 3 整除的数字,然后是 5,因为 4 从 2 中删除,等等。 .
标签: c# for-loop if-statement prime-factoring