素数对

作者: sortinnauto | 来源:发表于2018-03-12 21:04 被阅读0次

时间限制:1秒

空间限制:32768K

给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))

输入描述:
输入包括一个整数n,(3 ≤ n < 1000)

输出描述:
输出对数

输入例子1:
10

输出例子1:
2

思路:

  • 需要一个方法来判断一个数字是否为素数。
  • 从最小的素数为标记开始,用输入的数去减它,判断差值是否为素数的同时也要判断这个标记是否为素数。
package Problems;


public class Sum {

    int count = 0;

    public boolean isZhiShu(int num) {
        boolean res = true;
        for (int i = 2; i <= num - 1; i++) {
            if (num % i == 0) {
                res = false;
            }
        }
        return res;
    }

    public int sum(int input) {
        if (number < 3 || number >= 1000) {
            return -1;
        }

        int start = 2;
        while (start <= number / 2) {    //检查一半即可
            if (isZhiShu(number - start) && isZhiShu(start)) {
                count++;
            }
            start++;
        }
    }
}

几个测试用例:

public class SumTest {

    Sum sum = new Sum();
    boolean result = false;
    int res = 0;

    @Before
    public void before() throws Exception {
    }

    @After
    public void after() throws Exception {
    }

    /**
     * Method: isZhiShu(int num)
     */
    @Test
    public void test_is_ZhiShu() throws Exception {
        result = sum.isZhiShu(23);
        assertEquals(true, result);

    }

    @Test
    public void test_input_10() throws Exception {
        res = sum.sum(10);
        assertEquals(2, res);

    }


    @Test
    public void test_input_30() throws Exception {
        res = sum.sum(30);
        assertEquals(3, res);

    }

    @Test
    public void test_input_100() throws Exception {
        res = sum.sum(100);
        assertEquals(6, res);

    }
}


相关文章

  • 素数对

    时间限制:1秒 空间限制:32768K 给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结...

  • 第六章第二十九题(双素数)(Twin primes) - 编程练

    **6.29(双素数)双素数是指一对差值为2的素数。例如:3和5就是一对双素数,5和7是一对双素数,而11和13也...

  • B1007 素数对猜想 (20分)

    /*题意:1、找出素数对,素数对就是,相邻两个素数差为2的素数 解题:1、判断是不是素数函数2、判断i和i+2是不...

  • 自学Python:寻找回文素数

    什么是回文素数? 回文素数指的是,对一个整数n从左向右和从右向左读其数值都相同且n为素数,则称整数n为回文素数。比...

  • 1007素数对猜想

    问题描述:让我们定义d​n 为:dn =pn+1−pn,其中pi 是第i个素数。显然有d1=1,且对于n>1有dn...

  • 1007 素数对猜想

    让我们定义d​n​​ 为: 其中p​i是第i个素数。显然有d​1​​ =1,且对于n>1有d​n是偶数。“素数对猜...

  • 1007 素数对猜想

    让我们定义d​n为:d​n=pn+1−p​n,其中pi是第i个素数。显然有d1​​ =1,且对于n>1有dn是偶数...

  • 第六章第二十七题(反素数)(Emirp) - 编程练习题答案

    **6.27(反素数)反素数(反转拼写的素数)是指一个非回文素数,将其反转之后也是一个素数。例如:17是一个素数,...

  • 1007. 素数对猜想 (求素数改进效率)

    让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 d...

  • 自测-2 素数对猜想

    Attention: 如果喜欢我写的文章,欢迎来我的github主页给starGithub:github.com...

网友评论

      本文标题:素数对

      本文链接:https://www.haomeiwen.com/subject/bupofftx.html