当前位置: 首页 > news >正文

蓝桥杯 2022 Java 研究生省赛 3 题 质因数个数

 

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
  
public static void main(String[]args) {
  Scanner scan = new Scanner(System.in);
                // 唯一分离定律 任何一个数都可以被分解为两个质数相乘的形式
                //所以找质因数 当一个数能
                long n = scan.nextLong();
                int res = 0;
                 for (int i = 2; (long)i * i< n; i++) {
                    if(n%i == 0) {
                        //被整除
                        res++;
                      while(n%i==0) {//那么就一直除到其b
                        n = n/i;
                    }   
                    }
                }
                if(n>1) {
                    res++;
                }
                System.out.println(res);
    }
}

举个例子,这种为什么不用判断是不是质因数,而是直接for循环(从2开始),原因就是如果能整除的话会一直while循环,我们先列举前几个循环的数   2  3  4  5  6  7  8  9 10  如果要找到的数是396, i = 2那么第一轮396%2 == 0好,我们先对396/2 = 198  198 / 2 = 99  99%2!=0 开始  i = 3 状态 99  33 11  好,下一个能整除11的只有11了 ,那么  4 5  6   7 8 9  10 为什么就不算因数了呢?

这里我将他们进行分类:

一、4 6 8 9 10 不是质数 如何排除的呢(就是如何保证不让他们参与循环的)呢???2 整除不了了,那么剩下的数必然没有  4  6 8 10 因数  , 3 也整除不了了那后面的数必然也没有    9这个因数了.....这样就排除所有非质数了

二、 5  7 这些质数但不能整除原数是如何排除的呢???这个有点难理解,396之前除了一堆2 和 3 到了 5 了,不能整除了,那么就算你复原之前的的把 2 3再乘回去,5 也整除不了,就是这些无关质数不会因为除了前面的数而变得整除不了。(特性)

总结:质数的叠加相除

  while(n%i==0) {//那么就一直除到其b

                        n = n/i;

                    }   原因就是直接跳过之后出现的合数(不用再判断了是否为质数了)

相关文章:

  • 深度学习transfomer架构的职业匹配系统
  • 完全背包变体-排列和组合的循环顺序问题
  • 【Linux学习笔记】Linux基本指令及其发展史分析
  • C++(三)类与对象 中
  • Spring MVC 处理请求
  • MRI学习笔记-Meta分析
  • Eureka Server 数据同步原理解析
  • NodeJS服务器 + Vue3框架 从搭建服务器 定义接口 到请求数据页面展示
  • 【杂谈】-Meta AI的可扩展内存层
  • 养老小程序方案详解居家养老小程序系统
  • 第十章 数据库恢复技术
  • 我的AI工具箱Tauri版-通用音频转文本
  • 智能图像处理平台:RabbitMQ配置
  • Unclutter for Mac v2.2.12 剪贴板/文件暂存/笔记三合一 支持M、Intel芯片
  • 安卓基础组件Looper - 03 java层面的剖析
  • Spring Cloud Gateway 网关的使用
  • Stiring-PDF:开源免费的PDF文件处理软件
  • 记一次误禁用USB导致键盘鼠标失灵的修复过程
  • 【鸿蒙Next】鸿蒙与flutter使用自定义iconfont的ttf字体库对比总结
  • 大模型分布式训练和优化
  • 技术派|威胁F-35、击落“死神”,胡塞武装防空战力如何?
  • 清雪车司机未拉手刹下车导致溜车被撞亡,事故调查报告发布
  • 布局50多个国家和地区,我国科技型企业孵化器数量全球第一
  • 杨文庄当选中国人口学会会长,曾任国家卫健委人口家庭司司长
  • 河南省委常委会会议:坚持以案为鉴,深刻汲取教训
  • 2025财政观察|长三角“三公”经费普降,钱要用在刀刃上