中国移动系统集成公司2020春招技术综合在线编程题第一题

题目

循环求区间内质数

时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB

题目描述:

质数又称素数。指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其它自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。

求出从3开始到x结束的区间之内的所有质数,然后对这些数字计算平方根之和。

输入

一个数字x,表示区间结束

输出

一个数字,表示相应的结果

样例输入

30

样例输出

32.199047

题目吐槽

1.过于简单。

2.题目中的区间没有提及,是否包含区间端点

3.输出并没有提及保留几位小数。

解题代码


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        double sum = 0;
        for (int i = 3; i <= n; i++) {
            if (isPrime(i)) {
                sum += Math.sqrt(i);

            }
        }
        System.out.println(String.format("%.6f", sum));
    }

    private static boolean isPrime(int x) {
        if (x % 2 == 0) {
            return false;
        }
        for (int i = 3; i <= Math.sqrt(x); i += 2) {
            if (x % i == 0) {
                return false;
            }
        }
        return true;
    }
}

解题结果

你可能感兴趣的:(校园招聘)