//判断是否为质数------------------------------------------------------
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的最大公约数是两个数的公共素因 ...
随机推荐
mobx源码解读3
计算属性 function Todo() { this.id = Math.random() mobx.extendObservable(this, { aaa: 222, bbb: 11, ccc: ...
chrome 问题
1.chrome表单自动填充去掉input黄色背景解决方案 http://blog.csdn.net/wangxiaohui6687/article/details/10149579 2.chrome ...
使用python实现栈和队列
1.使用python实现栈: class stack(): def __init__(self): self.stack = [] def empty(self): return self.stack ...
Filco minila 的蛋疼。
3494左shift坏了,期间邮寄厂家维修,就把尘封多年的minila拿出来用着. 最为人诟病的问题:蓝亚适配,与mac跟iphone都能快速的匹配连接上.但是对于我的dell vestro 2012 ...
MySQL学习笔记二
Ø function 函数 函数的作用比较大,一般多用在select查询语句和where条件语句之后.按照函数返回的结果, 可以分为:多行函数和单行函数:所谓的单行函数就是将每条数据进行独立的计算,然 ...
Android开发的第一天
不管做什么开发都是有开始的,对于开发的话开始要的准备的就是开发工具了 安装开发工具配置开发工具好了不多说了现在我来说怎么样安装和配置安卓的开发工具吧 第一首先就是要下载一个JDK (Java SE ...
Ubuntu下安装Apache2, php5 mysql
不错的博文:http://blog.csdn.net/guaikai/article/details/6905781 1:首先安装apache:打开终端(ctrl+Alt+t), 输入命令:sudo ...
MySQL使用指南(上)
作者:大金刚 有很多朋友虽然安装好了mysql但却不知如何使用它.在这篇文章中我们就从连接MYSQL.修改密码.增加用户等方面来学习一些MYSQL的常用命令. 一.连接MYSQL. 格式: mys ...
lumen安装后输出hello world
1.安装composer,具体请百度 2.composer 切换中国镜像,好处自己体会,命令如下 composer config -g repo.packagist composer https:// ...
英语知识积累-D01-body+animal
My body What's your name? Here are lots of children playing. Are they happy or sad? Who's waving at ...