<!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实现)的更多相关文章

  1. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m

    给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后 ...

  2. 欧几里得算法求最大公约数(gcd)

    关于欧几里得算法求最大公约数算法, 代码如下: int gcd( int a , int b ) { if( b == 0 ) return a ; else gcd( b , a % b ) ; } ...

  3. 欧几里得算法求最大公约数-《Algorithms Fourth Edition》第1章

    最大公约数(Greatest Common Divisor, GCD),是指2个或N个整数共有约数中最大的一个.a,b的最大公约数记为(a, b).相对应的是最小公倍数,记为[a, b]. 在求最大公 ...

  4. 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}^ ...

  5. 浅谈欧几里得算法求最大公约数(GCD)的原理及简单应用

    一.欧几里得算法及其证明 1.定义: 欧几里得算法又称辗转相除法,用于求两数的最大公约数,计算公式为GCD(a,b)=GCD(b,a%b): 2.证明: 设x为两整数a,b(a>=b)的最大公约 ...

  6. 关于欧几里得算法求最大公约数,即OJ1029的参考解法

    #include <stdio.h> int main(int argc, char *argv[]) { int a,b,c; scanf("%d %d",& ...

  7. java求最大公约数(分解质因数)

    下面是四种用java语言编程实现的求最大公约数的方法: package gcd; import java.util.ArrayList; import java.util.List; public c ...

  8. 欧几里得求最大公约数--JAVA递归实现

    欧几里得算法求最大公约数算法思想: 求p和q的最大公约数,如果q=0,最大公约数就是p:否则,p除以q余数为r,p和q的最大公约数即q和r的最大公约数. java实现代码: public class ...

  9. NYOJ-476谁是英雄,分解质因子求约数个数!

    谁是英雄 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 十个数学家(编号0-9)乘气球飞行在太平洋上空.当横越赤道时,他们决定庆祝一下这一壮举.于是他们开了一瓶香槟.不 ...

随机推荐

  1. 【BZOJ】3329: Xorequ

    [题意]给定方程x^3x=2x,求<=x和<=2^x的满足方程的正整数个数. [算法]数位DP,矩阵快速幂 [题解]异或相当于不进位加法. 移项得,x^2x=3x,又因为x+2x=3x,所 ...

  2. eclipse+EGIT+GitHub

    下载EGIT:http://wiki.eclipse.org/EGit/FAQ#Where_can_I_find_older_releases_of_EGit.3F 1.下载eclipse版本对应的E ...

  3. 【转】linux下杀死进程

    经过搜集和整理相关的Linux操作系统杀死进程的材料,在这里给大家推荐本篇文章,希望大家看后会有不少收获. 1. kill 作用:根据进程号杀死进程 用法: kill [信号代码] 进程ID 举例: ...

  4. monkey测试===easyMonkey测试【推荐】

    easymonkey测试: easymonkey是基于monkey测试的一个二次开发工具.(关于monkey测试参见之前blog) easymonkey的特点就是方便,解决了很多参数命令上设置的麻烦, ...

  5. web.py输出中文字符串乱码问题的解决

    web.py中文字符串网页显示乱码的解决 #!/usr/bin/env python # encoding: utf-8 import weburls = ( '/', 'index')class i ...

  6. 【洛谷P3651】展翅翱翔之时

    难以吐槽出题人的中二病…… 这题有点类似ZJOI2008 骑士,先跑树上的,最后拆环即可. #include<bits/stdc++.h> #define N 100005 typedef ...

  7. webapi-2 接口参数

    1. 实例 using System; using System.Collections.Generic; using System.Linq; using System.Net; using Sys ...

  8. squid 代理服务

    squid代理服务分为两种方式: 一.正向代理(用在企业的办公环境中,员工上网需要通过Squid代理来上网) 客户端发送请求到代理服务器,代理服务器去向真正的服务器请求结果,并将结果返回给客户端 二. ...

  9. jQuery 中的 unbind() 方法

    jQuery 中的 unbind() 方法是 bind() 方法的反向操作,从每一个匹配的元素中删除绑定的事件. 语法结构: unbind([type][, data]); type是事件类型,dat ...

  10. JQuery一个对象绑定多个事件

    jQuery("#id").click(func1).mouseover(func2)//方法连写,func为方法的名字 jQuery("#id").click ...