首页 > 编程语言 >【CSP:202312-2】因子化简(Java)

【CSP:202312-2】因子化简(Java)

时间:2024-08-21 11:51:36浏览次数:10  
标签:化简 遍历 Java hashMap int res 202312 因数 HashMap

题目链接

题目描述

描述

样例
子任务

求解思路

  • 哈希表:利用哈希表记录下每个因数出现的次数。
  • 从 2 2 2 开始遍历,找出 n n n 的每一个因数,因为是从小到大进行遍历,能够确保每一个放入哈希表中的键都是素数(例如: 4 4 4 作为一个合数就不会被遍历到,在进行数字 2 2 2 的遍历时就已经将 4 4 4 拆分为了 2 × 2 2×2 2×2 的形式)。
  • 循环遍历的结束条件为j<=n,因为 n n n 会不断缩小,除数不能大于被除数。
  • 每次找到一个因数,就对 n n n 进行除法操作,直至找出所有的因数。
  • 通过筛选符合阈值的因数,求解出最后的结果。

实现代码

import java.util.HashMap;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int q;
        q = in.nextInt();
        long n;
        int k;
        long res;
        HashMap<Integer, Integer> hashMap;
        for (int i = 0; i < q; i ++) {
            res = 1;
            hashMap = new HashMap<>();
            n = in.nextLong();
            k = in.nextInt();
            for (int j = 2; j <= n; j ++) {
                while (n % j == 0) {
                    n /= j;
                    hashMap.merge(j, 1, Integer::sum);
                }
            }
            for (int j : hashMap.keySet()) {
                if (hashMap.get(j) < k) {
                    continue;
                }
                res *= (long) Math.pow(j, hashMap.get(j));
            }
            System.out.println(res);
        }
    }
}

标签:化简,遍历,Java,hashMap,int,res,202312,因数,HashMap
From: https://blog.csdn.net/dawn191228/article/details/141389660

相关文章

  • 1Java加强----异常
    1.异常体系1.1异常入门1.1运行时异常publicstaticvoidshow(){//int[]arr={1,2,3};//System.out.println(arr[3]);//.ArrayIndexOutOfBoundsException数组越界异常//Stringstr=null;System.out.println(str.length());//Nul......
  • 2Java加强-----泛型
    1.认识泛型publicclassGenericDemo1{publicstaticvoidmain(String[]args){//目标:认识泛型,搞清楚使用泛型的好处。ArrayListlist=newArrayList();list.add("java");list.add("php");list.add(23);l......
  • [JAVA]创建多线程的三种方式与区别
    继承Thread类创建线程实现Runnable接口创建线程Callable接口创建线程要学习创建线程,我们要通过代码来演示,这里我们可以通过实现以下参赛者跑步的场景来展开。模拟以下场景                              模拟10......
  • Java SuppressWarnings 注解抑制警告参数记录
    在Java代码中可以通过合理使用@SuppressWarnings注解可以抑制一些不合适的警告,这里记录一下用过的忽略类型参数作用all抑制“可替换为Lambda表达式”的警告Convert2Lambda抑制“可替换为Lambda表达式”的警告unused抑制“方法/字段/属性等从未使用”的警告c......
  • Java并发编程 - JUC介绍、JUC锁(公平锁、非公平锁、可重入锁/递归锁、自旋锁、Reentran
    Java并发编程中的java.util.concurrent(简称JUC)包提供了许多高级并发工具和类,使得开发人员能够更加方便地编写高性能的并发程序。下面将详细介绍JUC包中的一些锁相关的概念和类。JUC介绍java.util.concurrent包提供了许多高级并发工具类,包括但不限于Executor框架......
  • [JAVA]什么是泛型?泛型在Java中的应用
    目录1.初识泛型的应用2.创建自定义泛型类3.利用较小范围的泛型方法定义4.了解泛型通配符,什么是泛型通配符?1.初识泛型的应用    —所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。    —定义泛......
  • 783java jsp SSM校园兼职管理系统(源码+文档+开题+运行视频+讲解视频)
      项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8......
  • 777java jsp SSM水果蔬菜商品商城管理系统(源码+文档+运行视频+讲解视频)
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • 782java jsp SSM课程辅助教学网站系统(源码+文档+开题+运行视频+讲解视频)
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • 基于Java+SpringBoot+Vue的房屋租赁管理系统的设计与实现
    基于Java+SpringBoot+Vue的房屋租赁管理系统的设计与实现前言✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌......