分解质因数(java)
数论——分解质因数
记录一道关于数论的题目,题目本身不难,主要是学习一下思想~
文章目录
- 数论——分解质因数
- 思路
- 代码
- 总结
思路
根据算术基本定理又称唯─分解定理,对于任何一个合数,我们都可以用几个质数的幂的乘积来表示。
如:
12 = 2^2 * 3
20 = 2^2 * 5
30 = 2 * 3 * 5
接下来我们利用这个公式分解质因数。
设一个质数为p,如果 n % p == 0,那么p就是n的一个质因数,接下来就是求p的指数,我们让n = n / p , 这样就从n中剔除了一个p,接着重复上述两步,直到 n % p != 0
代码
/**
* 注意:以上代码中for循环的结束条件也是i <= n / i,因为根据公式,最多只可能有一个质因数是大于 根号n,
* 因为有两个的话,乘积肯定超过n了。所以当for循环结束后判断n是否大于1,如果大于就说明有一个大于 根号n 的质因数。
*/
public class Main {public static void prime(int n) {for (int i = 2; i <= n / i; i++) {//即i*i<=nint a = 0, b = 0;while (n % i == 0) {a = i;n /= i;b++;}if (b > 0)System.out.println("质因数之一: " + a + " 的 " + b + " 次方");}if (n > 1) System.out.println("有一个大于根号n 的质因数:" + n);}public static void main(String[] args) {prime(30);}
}
总结
初学数论,多积累思想和经验很重要!
文章粗浅,希望对大家有帮助!
分解质因数(java)相关推荐
- java实现将一个正整数分解质因数,Java将一个正整数分解质因数
import java.io.*; public class Factorization { public void division(int input) { for(int i = 2; i &l ...
- 分解质因数 JAVA
问题描述 求出区间[a,b]中所有整数的质因数分解. 输入格式 求出区间[a,b]中所有整数的质因数分解. 输出格式 每行输出一个数的分解,形如k=a1a2a3-(a1<=a2<=a3-, ...
- 分解质因数Java实现
//传入一个整数,返回分解的质数,例如num=18,返回[[2,1][3,2]],18=2^1+3^2public static ArrayList<ArrayList<Integer&g ...
- java求最大公约数(分解质因数)
下面是四种用java语言编程实现的求最大公约数的方法: package gcd;import java.util.ArrayList; import java.util.List;public cla ...
- java:蓝桥杯练习 分解质因数
[蓝桥杯][基础练习VIP]分解质因数 时间限制: 1Sec 内存限制: 128MB 提交: 2802 解决: 1688 题目描述 求出区间[a,b]中所有整数的质因数分解. 提示 先筛出所有素数,然 ...
- java - 分解质因数
根据提示输入一个正整数,用java程序进行分解质因数.例如:输入 90,打印出 90=233*5 原理分析: 1.对 n 进行分解质因数,应先找到一个最小的质数 k,然后按下述步骤完成: 2.如果这个 ...
- java isprime函数_翁恺老师零基础java课程函数章第一题分解质因数
分解质因数(5分) 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. 现在 ...
- java正整数分解因数_java将一个正整数分解质因数
import java.util.Scanner; import java.util.Vector; public class 分解质因数 { public static void main(Stri ...
- 简单的java实现分解质因数。
首先,我们知道: 对n进行分解质因数,应先找到一个最小的质数i,然后按下述步骤完成: a)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可. b) 如果n不等于i,i能被n整除,则应打 ...
- Java 小例子:分解质因数
这个例子演示如何利用递归来完成分解质因数. import java.util.List; import java.util.ArrayList; /** * 分解质因数 */ public class ...
最新文章
- Regular Expression Matching
- 三维点云对应关系聚合算法的性能评价
- axios请求拦截器、响应拦截器、vue-router路由导航守卫的使用(案例)
- Squeeze Net
- 程序员这样聊天,让女神疯狂追逐你
- 微信oauth2接口获取用户的openid
- 概率论——超几何随机变量
- MT6762/MT6763处理器参数比较,MT6762参考设计资料介绍
- 开源直播推流sdk_携程移动直播探索
- 如何每天学习10小时,依然精力充沛?(超实用教程)
- mysql Incorrect string value \xF0\x9F\x98\x84\xF0\x9F
- iOS开发之自定义键盘(数字,字母类型等随意切换)
- mybatis sql 改写
- 痛心!中兴通讯子公司研发工程师跳楼坠亡...
- 空心三角形图案-c++
- 这可能是你近 2 年发论文最好机会!
- 大学上课占座现象是否真的应该由校方控制
- RISC和CISC的区别
- 蓝桥杯—奇妙的数字(小明发现了一个奇妙的数字)
- NoClassDefFoundError解决方案