分解质因数法求最大公约数(javascrip实现)
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript"> //判断是否为质数------------------------------------------------------
function isPrime(n) { for (var i = n - 1; i > 1; i--) {
if (n % i == 0) {
return false;
}
}
return true; }
// --------------------------------------------------- //求出一个数(非质数)的质因数--------------------------------------------------------
function primeArray(n, array) {
array = new Array(); for (var i = 2; i < n; i++) {
//是否为质数
if (isPrime(i)) {
var temp_R = n % i;//余数
var temp_c = n / i;//商
//是否整除
if (temp_R == 0) { array.push(i); if (!isPrime(temp_c)) {
//商不为质数
array = array.concat(primeArray(temp_c, array)); } else {
array.push(temp_c); }
break;
}
} } return array; } // 查找两个数组的相同部分-----------------------------------
function findSamePart(a, b) {
var temp = new Array(); for (var i = 0; i < a.length; i++) { for (var j = 0; j < b.length; j++) {
if (a[i] == b[j]) {
temp.push(a[i]);
a.splice(i, 1);
b.splice(i, 1);
i =0; continue; } } } return temp; }
//--------------------------------------------------- // 分解质因数求最大公因数-----------------
function gcd(a, b) {
if (isPrime(a) || isPrime(b)) { return 1;
}
var a = parseInt($("#a").val());
var b = parseInt($("#b").val());
var a_array = new Array();
var b_array = new Array();
var a_array = primeArray(a, a_array);
var b_array = primeArray(b, b_array);
var temp = findSamePart(a_array, b_array);
var sum = 1;
for (var i = 0; i < temp.length; i++) {
sum = sum * temp[i]; } return sum; } </script> </head>
<body>
<div>
<h1>分解质因数法</h1>
<input type="number" id="a" placeholder="整数a"></br>
<input type="number" id="b" placeholder="整数b">
</br>
<input type="button" value="求最大公约数" onclick="demo();">
<script type="text/javascript">
function demo() { var a = $("#a").val();
var b = $("#b").val();
alert(a+"和"+b+"的最大公约数是"+gcd(a, b)); } </script>
</div> </body>
</html>
分解质因数法求最大公约数(javascrip实现)的更多相关文章
- 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m
给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后 ...
- 欧几里得算法求最大公约数(gcd)
关于欧几里得算法求最大公约数算法, 代码如下: int gcd( int a , int b ) { if( b == 0 ) return a ; else gcd( b , a % b ) ; } ...
- 欧几里得算法求最大公约数-《Algorithms Fourth Edition》第1章
最大公约数(Greatest Common Divisor, GCD),是指2个或N个整数共有约数中最大的一个.a,b的最大公约数记为(a, b).相对应的是最小公倍数,记为[a, b]. 在求最大公 ...
- HDU-3240(卡特兰数+分解质因数后求逆元)
卡特兰数相关公式 : \(H_n = {C_{2n}^n \over n+1)}\) \(H_n = {(4n-2)\over n+1}\times H_{n-1}\) \(H_n = C_{2n}^ ...
- 浅谈欧几里得算法求最大公约数(GCD)的原理及简单应用
一.欧几里得算法及其证明 1.定义: 欧几里得算法又称辗转相除法,用于求两数的最大公约数,计算公式为GCD(a,b)=GCD(b,a%b): 2.证明: 设x为两整数a,b(a>=b)的最大公约 ...
- 关于欧几里得算法求最大公约数,即OJ1029的参考解法
#include <stdio.h> int main(int argc, char *argv[]) { int a,b,c; scanf("%d %d",& ...
- java求最大公约数(分解质因数)
下面是四种用java语言编程实现的求最大公约数的方法: package gcd; import java.util.ArrayList; import java.util.List; public c ...
- 欧几里得求最大公约数--JAVA递归实现
欧几里得算法求最大公约数算法思想: 求p和q的最大公约数,如果q=0,最大公约数就是p:否则,p除以q余数为r,p和q的最大公约数即q和r的最大公约数. java实现代码: public class ...
- NYOJ-476谁是英雄,分解质因子求约数个数!
谁是英雄 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 十个数学家(编号0-9)乘气球飞行在太平洋上空.当横越赤道时,他们决定庆祝一下这一壮举.于是他们开了一瓶香槟.不 ...
随机推荐
- HDU 2577 How to Type (字符串处理)
题目链接 Problem Description Pirates have finished developing the typing software. He called Cathy to te ...
- 大聊Python-----网络编程
什么是Socket? socket本质上就是在2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道来实现数据的互相传递. 我们知道网络 通信 都 是基于 ip+port 方能定位到目标的具体机器 ...
- ASP.NET 设置DropDownList的当前选项
1.通过显示字符Text DropDownList.Items.FindByText("你的值").Selected=true; 如果在设置之前,进行过设置,应用如下格式: Dro ...
- Android Studio 中引入Library
启动AndroidStudio后,打开你需要接收Library的项目.比如有两个项目,项目A,和Library项目B,那么打开项目A.图中所示为项目的结构图,点击右上角的File菜单. 2 在下拉菜单 ...
- import学习
一.import as import socket, os, regex模块导入时可以使用 as 关键字来改变模块的引用对象名字: import os as system //当多个引入时 ...
- [NOIP2011]刷水
前几天做了NOIP2011的题,感觉不是那么难. 这边先做了两天的前两题,T3还没打. D1T1:顺次读入,分别判断是否覆盖即可,照例大水: #include<cstdio> ],b[], ...
- HDU 6183 Color it 线段树
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6183 题意: 有四种操作: 0:清除所有点 1 x y c : 给点(x, y)添加一种颜色c(颜色不 ...
- Python数据处理实战
一.运行环境 1.python版本 2.7.13 博客代码均是这个版本2.系统环境:win7 64位系统 二.需求 对杂乱文本数据进行处理 部分数据截图如下,第一个字段是原字段,后面3个是清洗出的字段 ...
- android intent 传数据
1. 基本数据类型 Intent intent = new Intent(); intent.setClass(activity1.this, activity2.class); //描述起点和目标 ...
- XML 约束 (DTD和 schema)
book.DTD 如下: <?xml version="1.0" encoding="UTF-8" ?> <schema xmlns=&quo ...