实现此功能的最佳方式是什么:
ArrayList generatePrimes(int n)
Run Code Online (Sandbox Code Playgroud)
此函数生成第一个n素数(编辑:where n>1),因此generatePrimes(5)将返回ArrayListwith {2, 3, 5, 7, 11}.(我在C#中这样做,但我很高兴Java实现 - 或任何其他类似的语言(所以不是Haskell)).
我知道怎么写这个函数,但是当我昨晚做到这一点时,它并没有像我希望的那样结束.这是我想出的:
ArrayList generatePrimes(int toGenerate)
{
ArrayList primes = new ArrayList();
primes.Add(2);
primes.Add(3);
while (primes.Count < toGenerate)
{
int nextPrime = (int)(primes[primes.Count - 1]) + 2;
while (true)
{
bool isPrime = true;
foreach (int n in primes)
{
if (nextPrime % n == 0)
{
isPrime = false;
break;
}
}
if (isPrime)
{
break;
}
else
{
nextPrime …Run Code Online (Sandbox Code Playgroud) 这不是作业,我只是好奇.
INFINITE是这里的关键词.
我希望在primes()中使用它作为p.我相信这是Haskell中的内置函数.
所以,答案不能像"Just do a Sieve"那样天真.
首先,您不知道将消耗多少连续素数.好吧,假设你可以一次编制100个.您是否会使用相同的Sieve方法以及素数公式的频率?
我更喜欢非并发方法.
感谢您阅读(和写作;))!
我想找到介于0和长变量之间的素数,但我无法获得任何输出.
该计划是
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication16
{
class Program
{
void prime_num(long num)
{
bool isPrime = true;
for (int i = 0; i <= num; i++)
{
for (int j = 2; j <= num; j++)
{
if (i != j && i % j == 0)
{
isPrime = false;
break;
}
}
if (isPrime)
{
Console.WriteLine ( "Prime:" + i );
}
isPrime = true;
}
}
static void Main(string[] args) …Run Code Online (Sandbox Code Playgroud) 我是C#的新手.我想编写类似的东西,如果用户将在文本框中输入任何整数,则在列表框中显示素数.(这意味着,如果他们写10,它将显示0-10的素数,或20-20的素数等).
在编程之前,我应该先考虑什么?我知道互联网上有很多例子,但首先我想知道我需要什么?
谢谢你的提示;-)
===谢谢你们.所以你建议最好先在Console应用程序中做到这一点?我使用控制台应用程序做了一个"For Loop"的例子非常简单,但是当我尝试在Windows窗体应用程序中执行它时,我不确定如何实现它.我担心如果我继续在控制台中做示例,那么我将很难在Windows Form Apps中执行此操作.你怎么看?
======再次问好,
我的代码需要一些反馈:
Console.WriteLine("Please enter your integer: ");
long yourInteger;
yourInteger = Int32.Parse(Console.ReadLine());
//displaying the first prime number and comparing it to the given integer
for (long i = 2; i <= yourInteger; i = i + 1)
{
//Controls i if its prime number or not
if ((i % 2 != 0) || (i == 2))
{
Console.Write("{0} ", i);
}
}
Run Code Online (Sandbox Code Playgroud)