点击上方“蓝字”关注我们了解更多算法思路01题目

题目来源:洛谷OJ

题目链接:

https://www.luogu.com.cn/

题目描述

已知正整数n是两个不同的质数的乘积,试求出两者中较大的那个质数。

输入格式

一个正整数n。

输出格式

一个正整数p,即较大的那个质数。

输入输出样例

输入 #1复制

 21

输出 #1复制

 7

说明/提示

n ≤ 2 × 109

NOIP 2012 普及组 第一题

02思路

第一眼阅读完题目会感觉这个题很复杂,不但要判断质因数,还要应付庞大的数据范围。

质因数(素因数或质因子)在数论里是指能整除给定正整数的质数。除了1以外,两个没有其他共同质因子的正整数称为互质。因为1没有质因子,1与任何正整数(包括1本身)都是互质。正整数的因数分解可将正整数表示为一连串的质因子相乘,质因子如重复可以用指数表示。根据算术基本定理,任何正整数皆有独一无二的质因子分解式 [1] 。只有一个质因子的正整数为质数。(百度百科)

但是,用过质因数的定义,我们可以联想到唯一分解定理。

算术基本定理可表述为:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积,这里P1

2

3......

n均为质数,其中指数ai是正整数。这样的分解称为 N 的标准分解式。(百度百科)

剩下的就简单了,直接用输入的数对i(i = 2, 3 ,4 ,5 ,......)求余,倘若余数为0,则n / i 的就是答案。

03Java源代码

package 入门3循环结构;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.io.StreamTokenizer;/** *@Title P1075质因数分解.java *@description TODO *@time 2020年7月17日 *@author Baisu *@version 1.0 */public class P1075质因数分解 {  public static void main(String[] args) throws IOException {    // TODO Auto-generated method stub    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));    StreamTokenizer st = new StreamTokenizer(br);    PrintWriter pr = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));    st.nextToken();    int n = (int) st.nval;    for(int i=2; i      if(n%i==0) {        pr.println(n/i);        break;      }    }    pr.flush();  }}

扫码关注我们吧

作者:白苏(Baisu)

逸工作室,带你学习算法~戳“阅读原文”我们一起进步

java 判断一个数是正整数_【Java】P1075 质因数分解—关于数学方法在解题中的运用—(OJ:洛谷)...相关推荐

  1. JAVA判断两个数是否亲和数_亲和数

    亲和数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  2. JAVA判断一个数是否为质数

    JAVA判断一个数是否为质数 输入一个正整数N,判断该数是不是质数,如果是质数输出"N是一个质数",否则输出"N不是质数". 提示:质数的含义:除了1和它本身不 ...

  3. Java判断一个数是不是快乐数

    Java判断一个数是不是快乐数 快乐数的定义: 快乐数(happy number)有以下的特性: 在给定的进位制下,该数字所有数位(digits)的平方和,得到的新数再次求所有数位的平方和,如此重复进 ...

  4. java判断字符个数_使用Java判断字符串中的中文字符数量

    Java判断一个字符串str中中文的个数,经过总结,有以下几种方法(全部经过验证),可根据其原理判断在何种情况下使用哪个方法: 1. 1 char[] c =str.toCharArray();2 f ...

  5. Java判断一个数是不是素数

    [java] view plaincopy import java.util.Scanner; //质数又称素数,是指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数 publi ...

  6. Java 求1-100以内的所有素数,判断一个数是不是素数。Java代码实现附测试结果图

    质数(prime number)又称素数,有无限个. 质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数. 小师弟问了我个这么个联系题,虽然看似简单,但是,大家都觉得简单的东西 ...

  7. 用JAVA判断一个数是否为素数(质数)

    素数(prime number)又称质数,有无限个.质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数. 有时经常遇到用java判断素数的问题,为大家贴上怎么用java判断出一 ...

  8. java判断是否第一次出现_利用java判断字符首次出现的位置,java替换最后一个特定字符...

    利用java判断字符首次出现的位置利用爪哇判断字符首次出现的位置, 目的: (学习视频分享:java视频教程 实现代码如下: 导入Java.util.收藏品: 导入Java.util.LinkedLi ...

  9. java判断那个时间更晚_如何用Java判断日期是早于还是晚于另一个日期

    如何用Java判断日期是早于还是晚于另一个日期 另一个工作中常见的操作就是如何判断给定的一个日期是大于某天还是小于某天?在Java 8中,LocalDate类有两类方法isBefore()和isAft ...

最新文章

  1. PCL中点云的超体素(SuperVoxel)
  2. 平均股价的时间序列图形_美股技术分析 神奇的九转序列
  3. css家用电器,家用电器
  4. 《四世同堂》金句摘抄(六)
  5. 4. time datetime 时间模块
  6. css实现发光的input输入框
  7. async和await理解代码
  8. iOS开发中防止键盘挡住UITextField解决方案
  9. java应用servlt_关于Java:将Servlet用于非Servlet应用程序
  10. java 1 0_【Java】1.0 开发环境
  11. (转)Spring Boot (十三): Spring Boot 小技巧
  12. oracle数据库笔记---oracleweb视图使用流程,及plsql安装
  13. http://localhost:9000/application.pac问题解决!
  14. Theano学习笔记:Theano的艰辛安装体验
  15. Leetcode之字符串转换整数
  16. ChartControl柱状图指定每一个柱子的颜色
  17. Kindle、epub 、azw3修改行间距
  18. 直流无刷电机的一些介绍
  19. Php微信拉黑,微信被拉黑或删除?用这个方法强制聊天
  20. 李岳恒:2020年的经济趋势研判

热门文章

  1. 从源码角度解析Android中APK安装过程
  2. MQTT--物联网(IoT)消息推送协议
  3. FreeRTOS 之 在Cortex-M中应用时的中断优先级设置
  4. 数据结构与算法 / 回溯算法(八皇后、0 - 1 背包)
  5. java中class.forname连接mysql数据库_数据库链接与 Class.forName()用法详解
  6. sap 获取计划订单bapi_sapbapi的清单.doc
  7. 工程师必知的代码重构指南
  8. listview里怎么加按钮_一张照片出现好多分身,这怎么做的?
  9. docker 发布tomcat项目_Docker部署java项目[tomcat环境]
  10. cat 几行_研发早 商用早 有方科技Cat.1产品在多个共享场景商用