兴业数金笔试

选择题:存储过程、异常捕获、交换机的功能、序列化、线程优先级、SpringMVC、yield、数组等
代码题:分解质因子。
由于之前在做笔试时遇到了求素数的题,所以就回忆了下线性素数筛,这次笔试就用到了。
题干描述不充分的地方是,没有给待分解整数的范围。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        StringBuilder cache = new StringBuilder();
        cache.append(num).append("=");
        if (num < 4) {
            cache.append(num);
        } else {
            List<Integer> primeList = getPrime(num);
            int i = 0;
            while (num % primeList.get(i) != 0) {
                ++i;
            }
            cache.append(primeList.get(i));
            num = num / primeList.get(i);
            while(num != 1) {
                while (num % primeList.get(i) != 0) {
                    ++i;
                }
                cache.append("*").append(primeList.get(i));
                num /= primeList.get(i);
            }
        }
        System.out.println(cache);
    }
    static List<Integer> getPrime(int num) {
        int m = (int)Math.sqrt(num + 0.5);
        boolean[] vis = new boolean[num + 1];
        for (int i = 2; i <= m; ++i) {
            if (!vis[i]) {
                for (int j = i * i; j <= num; j += i) {
                    vis[j] = true;
                }
            }
        }
        List<Integer> ret = new ArrayList<>();
        for (int i = 2; i <= num; ++i) {
            if (!vis[i]) {
                ret.add(i);
            }
        }
        return ret;
    }
}



#兴业数金##笔经#
全部评论
楼主 请问你做的卷几?
点赞 回复 分享
发布于 2021-08-04 16:05
我上周六做的 现在还没面试消息 楼主有了吗
点赞 回复 分享
发布于 2021-08-05 16:03
楼主一面过了吗。我刚做的笔试和你的题一样😂
点赞 回复 分享
发布于 2021-08-13 22:59
笔试题是ACM吗 都是空白的?
点赞 回复 分享
发布于 2022-03-03 16:44
请问可以用python做吗
点赞 回复 分享
发布于 2022-05-29 14:13

相关推荐

评论
4
67
分享
牛客网
牛客企业服务