c语言用质因数分解法求最大公约数,分解质因数法求最大公约数(javascrip实现)

//判断是否为质数------------------------------------------------------

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&lt&semi;&equals;n&lt&semi;&equals;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]. 在求最大公 ...

浅谈欧几里得算法求最大公约数&lpar;GCD&rpar;的原理及简单应用

一.欧几里得算法及其证明 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谁是英雄&comma;分解质因子求约数个数!

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

辗转相除法&lowbar;欧几里得算法&lowbar;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 最短路 难度&colon;0

http://poj.org/problem?id=1860 #include //#include //#include

Why SignalR does not use WebSockets&quest;

Why SignalR does not use WebSockets?   As you probably know SignalR supports multiple transports. Th ...

Android 最热的高速发展框架XUtils

近期搜了一些框架供刚開始学习的人学习,比較了一下XUtils是眼下git上比較活跃 功能比較完好的一个框架,是基于afinal开发的,比afinal稳定性提高了不少.以下是介绍: 鉴于大家的热情,我又 ...

Xamarin&period;Forms踩坑集锦(持续更新)

1.ImageButton控件 问题:ImageButton在切换图片的时候,图片大小会改变. Github Issue:ImageButton changes image size · Issue ...

2016&sol;12&sol;21 dplの课练

1.将/etc/passwd第行的最后一段全部改成/bin/bash cat 1 |sed -n '1,$p' |egrep '.*:' -o |sed 's/$/\bin\/bash/' 2.将/e ...

解读经典《C&num;高级编程》第七版 Page20-32&period;核心C&num;&period;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 ...

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值