csharp进阶练习题:在素数的步骤【难度:2级】:

素数不经常间隔.例如,从23步骤是1.
35步骤是2.从7114.
2-50,我们有以下对2步骤素数:

3,5 - 5,7, - 11,13, - 17,19, - 29,31, - 41,43

我们将编写一个函数step与参数:

  • g(整数> = 2),其指示我们寻找步骤中,

  • M(整数> = 2),这也是搜索的开始(米含),

  • N(整数> = M),这也是搜索结束(n以下)

另外,在上述步骤的例子(2,2,50)将返回[3,5]在2和50之间的第一对用2步骤.

所以这个功能应该返回** ** 第一与对g的步骤间隔两个素数
极限M,N之间如果这些克步骤素数存在否则nilnullNoneNothing[]"0,0"{ 0,0}(取决于语言).

例子:

步骤(2,5,7) - > [5,7]或(5,7)或{5,7}或 "5 7"

步骤(2,5,5) - >零或...或[] OCaml中或{0,0}在C ++

工序(4,130,200) - > [163,167]或(163,167)或{163,167}

  • ** 查看更多的例子在"RUN"你的语言**

  • 备注:

([193,197]也是这样的2-步骤130和200之间素数,但它不是在第一对).

步骤(6,100,110) - > [101,107]虽然有101和107,其是103之间的素数;该对101-103是一个两步骤.

笔记:

“一步"的想法是接近的"差距”,但它是不完全一样的.对于那些有兴趣,他们可以去看看
在.

A"间隙"是更严格的:必须有在之间不存在素数
(101-107是"步骤",而不是一个"间隙".接下来习题将为约"间隙" ?.

对于围棋:当有m和n之间没有step零片的预期.
例如:步骤(2,4900,4919) - >零

编程目标:

class StepInPrimes 
{
    public static long[] Step(int g, long m, long n) 
    {
        // your code
    }        
}


测试样例:

using System;
using NUnit.Framework;
[TestFixture]
public static class StepInPrimesTests {
[Test]
    public static void test1() {
        Assert.AreEqual(new int[] {101, 103}, StepInPrimes.Step(2,,110));
        .( [] {, }, .(,,110));
        .( [] {, }, .(,,110));
        Assert.AreEqual(new int[] {359, 367}, StepInPrimes.Step(8,300,400));
        Assert.AreEqual(new int[] {307, 317}, StepInPrimes.Step(10,300,400));
    }
}


最佳答案(多种解法):

点击查看答案

更多关联题目:

免责申明

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars/
https://www.codewars/kata/steps-in-primes

更多推荐

csharp进阶练习题:在素数的步骤【难度:2级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练