//判断是否为质数------------------------------------------------------
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;
}
分解质因数法
function demo() {
var a = $("#a").val();
var b = $("#b").val();
alert(a+"和"+b+"的最大公约数是"+gcd(a, b));
}
将n(0<;=n<;=10000)的阶乘分解质因数,求其中有多少个m
给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0
欧几里得算法求最大公约数(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]. 在求最大公 ...
浅谈欧几里得算法求最大公约数(GCD)的原理及简单应用
一.欧几里得算法及其证明 1.定义: 欧几里得算法又称辗转相除法,用于求两数的最大公约数,计算公式为GCD(a,b)=GCD(b,a%b): 2.证明: 设x为两整数a,b(a>=b)的最大公约 ...
关于欧几里得算法求最大公约数,即OJ1029的参考解法
#include 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)乘气球飞行在太平洋上空.当横越赤道时,他们决定庆祝一下这一壮举.于是他们开了一瓶香槟.不 ...
辗转相除法_欧几里得算法_java的实现(求最大公约数)
辗转相除法,又被称为欧几里德(Euclidean)算法, 是求最大公约数的算法. 当然也可以求最小公倍数. 算法描述 两个数a,b的最大公约数记为GCD(a,b).a,b的最大公约数是两个数的公共素因 ...
随机推荐
centos7安装docker并设置开机启动
版本要求:查看内核版本,需大于3.10 [root@localhost ~]# uname -r -.el7.x86_64 更新内核:如果是生产机器务必慎重更新内核,避免出现不必要的问题. sudo ...
转载:CSS计数器的趣味时光之css计算数据
CSS计数器是“啊太好了,竟不知道CSS可以做这啊”这类非常有趣的众多特性之一.简言之,用CSS使你持续某增加某个量,而无需JavaScript. 简单计数器 我们从这个简单的分页示例开始: 你见到的 ...
POJ 1860 Currency Exchange 最短路 难度:0
http://poj.org/problem?id=1860 #include //#include //#include
Why SignalR does not use WebSockets?
Why SignalR does not use WebSockets? As you probably know SignalR supports multiple transports. Th ...
Android 最热的高速发展框架XUtils
近期搜了一些框架供刚開始学习的人学习,比較了一下XUtils是眼下git上比較活跃 功能比較完好的一个框架,是基于afinal开发的,比afinal稳定性提高了不少.以下是介绍: 鉴于大家的热情,我又 ...
Xamarin.Forms踩坑集锦(持续更新)
1.ImageButton控件 问题:ImageButton在切换图片的时候,图片大小会改变. Github Issue:ImageButton changes image size · Issue ...
2016/12/21 dplの课练
1.将/etc/passwd第行的最后一段全部改成/bin/bash cat 1 |sed -n '1,$p' |egrep '.*:' -o |sed 's/$/\bin\/bash/' 2.将/e ...
解读经典《C#高级编程》第七版 Page20-32.核心C#.Chapter2
前言 讲到核心C#的语法,其实很难讲,因为大部分是基础知识.如果只讲入门的基础知识,那细节又多,意义也不大.我们就不讲一般性的内容,而是找一些有趣的点,展开讲讲. 01 Hello World Hel ...
python 警惕 IEEE 754标准
双精度浮点数格式,即IEEE 754标准 >>> 0.1+0.2 0.30000000000000004 >>> (0.1+0.2)==0.3 False > ...
Java 数组实现 stack
首先定义 IStack package cn.com.example.stack; /** * Created by Jack on 2017/3/8. */ public interface ISt ...