素数伴侣 java

2023-05-16

package com.patience.interview.huawei;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

/**
 * 素数伴侣
 * @author Green.Gee
 * @date 2022/9/4 11:37
 * @email green.gee.lu@gmail.com
 */
public class PrimeCouple {

    public static void main(String[] args) throws IOException {
        /**
         * 奇数偶数 分组
         * 循环奇数组 找到偶数组中能够奇数匹配的素数伴侣
         * 已有伴侣的偶数则让给后来可以重新找到伴侣的
         */
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.valueOf(br.readLine());
        String [] lines = br.readLine().split("\\s");
        List<Integer> odds = new ArrayList<>(8);
        List<Integer> evens = new ArrayList<>(8);
        for(String i : lines){
            int item = Integer.valueOf(i);
            if(item % 2 == 1){
                odds.add(item);
            }
            if(item % 2 == 0){
                evens.add(item);
            }
        }

        int count = 0;
        int [] matchEvens = new int[evens.size()];
        for(int odd : odds){
            boolean [] v = new boolean[evens.size()];
            if(find(odd,matchEvens,evens,v)){
                count++;
            }
        }
        System.out.println(count);
    }

    static boolean find(int odd,int[] matchEvens,List<Integer> evens,boolean[] v){
        for (int i = 0; i < evens.size(); i++){
            boolean prime = isPrime(odd + evens.get(i));
            if(prime && !v[i]){
                v[i] = true;
                // try again to understand
                if(matchEvens[i] == 0 || find(matchEvens[i],matchEvens,evens,v)){
                    matchEvens[i] = odd;
                    return true;
                }
            }
        }
        return false;
    }

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

素数伴侣 java 的相关文章

  • 汇编语言

    基础知识 1 1机器语言 计算机的机器指令是一列二进制数字 计算机将之为转变为一列高低电平 xff0c 以使计算机的电子器件受到驱动 xff0c 进行运算 1 2 汇编语言的产生 程序员 汇编指令 编译器 机器码 计算机 1 3 汇编语言的
  • Bootloader概述

    Bootloader概述 分类 xff1a 嵌入式 Bootloader概述 Bootloader的含义 PC机上 windows linux 引导过程简介 嵌入式Bootloader 介绍与分析 嵌入式bootloader 介绍 Boot
  • vue SEO优化

    第一 xff0c ssr vue官方文档给出的服务器渲染方案 xff0c 这是一套完整的构建vue服务端渲染应用的指南 xff0c 具体参考https cn vuejs org v2 guide ssr html 第二 xff0c vue
  • 阿里云ubuntu 16.0402 安装mysql

    参考文献 阿里云服务器Ubuntu 16 04 3安装mysql如何远程连接阿里云上mysql数据库 出错10061 阿里云ubuntu 16 0402 安装mysql 前提 xff1a 装上Xshell xff0c winscp等远程工具
  • 阿里云开发工具汇总

    阿里云Ubuntu16 04 安装pip span class token function wget span https bootstrap pypa io get pip py python get pip py 阿里云Ubuntu1
  • 基于机器学习的异常检测与分析技术

    传统的运维方式在监控 问题发现 告警以及故障处理等各个环节均存在明显不足 xff0c 需要大量依赖人的经验 xff0c 在数据采集 异常诊断分析 故障处理的效率等方面有待提高 本关键技术面对传统运维故障处理效率低 问题定位不准确 人力成本高
  • Mac系统 消除系统更新提示的小红点

    1 首先在系统偏好设置中将软件更新中 自动保持我的Mac运行最新版本勾掉 xff1b 2 打开终端输入如下指令 xff1a defaults span class token function write span com apple sy
  • VSCode远程连接Ubuntu问题1:The remote host may not meet VS Code Server‘s prerequisites for glibc and libstd

    VScode配置远程免密连接Ubuntu16 0 4 xff0c 一直以来使用正常 xff0c 今天使用VSCode报错 xff0c 错误具体信息如下 xff1a The remote host may not meet VS Code S
  • wsl上的ubuntu执行docker和docker-compose失败问题排查

    起因 中秋放假没有关机 xff0c 肥来之后wsl上的docker compose 和docker报错啦 表现 docker compose ps报错 root 64 YK PC 00036 docker compose ps bash m
  • GVIM设置默认字体、背景颜色以及行号

    GVIM设置默认字体 背景颜色以及行号 xff1a 1 打开terminal去到根目录下 2 输入gvim vimrc打开空白文件 3 依次输入 set nu set guifont 61 Monospace 15 colorscheme
  • 2019-3-27毕设之python小白第三课---调用API接口

    CN DBpedia的接口调用 Introduction to APIs Knowledge Works以REST API的方式对外提供服务 一站式解决您的语义分析诉求 从多个维度为您的应用场景提供海量背景知识 API包括CN dbpedi
  • Python 使用xlrd模块获取Excel中超链接的URL并下载到本地

    本文介绍了xlrd模块如何操作Excel 目录 一 xlrd模块介绍二 使用步骤1 引入库2 示例代码 一 xlrd模块介绍 1 xlrd是读取Excel表格数据的模块 2 高版本的xlrd目前去除了对xlsx格式的支持 xff0c 支持x
  • 查看树莓派实时温度

    打开终端 xff0c 使用指令查看CPU温度 xff0c 依次输入以下指令 xff1a 1 cd sys class thermal thermal zone0 cat temp 返回值 除以1000 51540 返回值除以1000为当前C
  • 人脸识别概述[L-softmax | 人脸验证 | DeepFace | FaceNet | Triplet loss]

    文章目录 思维导图疑问用softmax分类做人脸识别 xff0c 怎么应用呀 概念区分主流方法损失函数Softmax loss基于欧式距离的损失函数对比损失 xff08 Contrastive Loss xff09 三元组损失 xff08
  • HDFS API常用的方法及使用

    文章目录 POM依赖HDFS API上传本地数据到HDFS系统删除指定路径下的文件创建文件夹及文件 xff0c 并向文件中写入数据获取指定文件的日期重命名目录获取指定路径所有的文件 POM依赖 span class token tag sp
  • Ubuntu 14.04 16.04 18.04 安装Docker(Docker CE)

    Ubuntu 14 04 16 04 18 04 使用apt get进行安装 自17年开始 xff0c docker分为docker ce xff08 社区版 xff09 docker ee xff08 企业版 xff09 xff0c 另外
  • PHP实现跨域的解决方法

    PHP实现跨域解决方法 如果要实现跨域通过设置Access Control Allow Origin来实现跨域 例如 xff1a 客户端的域名是client runoob com xff0c 而请求的域名是server runoob com
  • SLAM后端——滤波与优化对比

    滤波与优化 xff1a 摘自 xff1a https www cnblogs com zengcv p 5994587 html 因为基于滤波的理论 xff0c 滤波器稳度增长太快 xff0c 这对于需要频繁求逆的EKF xff08 扩展卡
  • realsense t265测试

    roslaunch realsense2 camera rs t265 launch rosrun rviz rviz roslaunch vins estimator euroc launch 将加计和陀螺仪主题放在一起 修改rs cam
  • Intel Realsense t265获取相机参数

    rs sensor control

随机推荐

  • VINS-MONO需要修改的参数

    相机参数修改 xff1a 加速度和角速度发表在两个话题 xff0c 用上述方法将其发表在一个话题上 修改VINS MONO包 xff1a
  • MSCKF

    https github com TurtleZhong msckf mono
  • ROS毕设坑3:在ROS下用视觉方法求取R和t,然后将其发布

    今天莫名遇到两个问题 xff1a 之前调好的代码硬生生的跑不通 xff0c 就会出现下面这个问题 xff1a 大概意思就是说我还没得到图片呢就让他去计算 xff0c opencv就出错了 xff0c 我不信这个邪 xff0c 自己去调试了一
  • Linux网卡驱动pcnet32.c的注释(AM79C9*系列网卡的驱动)

    很久之前读的网卡驱动源码 xff0c 很多东西已经忘记了 xff0c 最近面试被问道了网卡收数据包的全过程 xff0c 只能答出一个很简单的过程 xff0c NAPI这种非常优秀的机制都没有想起来 xff0c 很惭愧 xff0c 重新复习了
  • ADRC算法Auto Disturbances Rejection control

    自抗扰控制 其中 xff0c e 61 v t y t 是控制系统参考输入量v t 与被控对象输出量y t 之间的差值 xff0c kp比例系数 ki积分系数 xff0c xff0c kd微分系数 优点 xff1a 1 仅由误差来决定控制
  • python 下运行ros

    1 建立l两个文件夹python ros scr 2 执行下述命令后 xff0c 将会在在src中 xff0c 建立一个包daodao 并且在文件夹daodao里生成了两个空文件夹 xff0c 有include daodao scr 和 C
  • tensor 与 array 的相互转化

    import tensorflow as tf import numpy as np a 61 np array 1 2 3 4 5 6 7 8 9 print a 1 2 3 4 5 6 7 8 9 b 61 tf constant a
  • keras.layers.UpSampling2D与tf.image.resize_nearest_neighbor

    参考https www bookstack cn read keras docs zh sources layers convolutional md keras layers UpSampling2D size 61 2 2 data f
  • Linux安装elasticsearch7.x(踩坑分享)

    安装并启动 首先下载elasticsearch压缩文件 xff0c 下载地址 我这里选择的是elasticsearch 7 17 1版本 xff1a https www elastic co cn downloads elasticsear
  • VNC 登录显示too many security failures的解决方法

    原因 xff1a 黑客试图登录 解决方法 xff1a 在putty上登录 xff0c 然后输入命令vncserver kill 5 杀掉vnc进程 之后输入su 你的用户名 使用su权限 输入命令 vnc 重启vnc 成功之后就可以再次登录
  • MapReduce案例运行及分词

    首先查询进程 xff0c 发现hadoop并没有启动 如何配置hadoop xff0c 参考我的另外一篇博文 Hadoop环境准备 接下来 xff0c 启动hadoop start all sh 或者 start dfs sh start
  • main函数是主线程吗

    1 线程的概念 xff1a 线程是程序最基本的运行单位 xff0c 而进程不能运行 xff0c 所以能运行的 xff0c 是进程中的线程 2 线程是如何创建起来的 xff1a 进程仅仅是一个容器 xff0c 包含了线程运行中所需要的数据结构
  • C#类型的转换:Converter<TInput, TOutput> 委托的使用

    Converter lt TInput TOutput gt 委托 表示将对象从一种类型转换为另一种类型的方法 此委托由 Array 类的 ConvertAll lt TInput TOutput gt 方法和 List lt T gt 类
  • 收藏一些不错的国外网站

    设备树 xff1a https www devicetree org LINUX xff1a https www arm linux org uk USB xff1a https github com pyusb pyusb PYTHON
  • 近红外跨模态行人重识别(RGB-IR Cross-Modality Re-id)(一)

    1 写在前面 本文是我阅读近红外的跨模态行人重识别 xff08 RGB IR Cross Modality Re id xff09 文献的笔记 xff0c 由于网上对该方面介绍的博客很少 xff0c 所以这里我记录下阅读文章的一些要点和我自
  • ESKF的相关理解

    ESKF相关总结 对随机噪声和干扰的积分ESKF中的处理手段 xff1a 预积分中的处理手段 ESKF中IMU GPS不同解算坐标系的处理全局坐标系的初始化GPS坐标系的转换重力加速度引出的ENU IMU坐标系转换的初始化 状态量的初始化关
  • T265相关使用

    0 查看相机配置信息 rs enumerate devices 1 读取相机内外参信息 rs enumerate devices c 图像数据发布的Topic 图像数据30Hz camera fisheye1 camera info cam
  • vins-fusion中的GPS和VO融合

    https blog csdn net hltt3838 article details 109725845 这个帖子还蛮有价值的 GPS进行更新的时候 xff0c 需要寻找与VIO时间戳相对应的GPS消息 根据 43 10ms的时间偏差找
  • 玩转NVIDIA Jetson AGX Xavier

    最近项目应用需要部署到边缘模块 xff0c 所以就玩起了Xavier 感觉网上的资料不多 xff0c 所以从头记录一下笔记 xff0c 方便大家一起学习应用 玩转NVIDIA Jetson AGX Xavier 1 刷机 xff08 安装s
  • 素数伴侣 java

    span class token keyword package span span class token namespace com span class token punctuation span patience span cla