求两个正整数之最大公因子的算法(辗转相除法) 最大公约数是指能同时整除它们的最大正整数 基本原理:两个数的最大公约数等于它们中较小的数和两数之差的最大公约数. 就如有 a = 122, b = 54,a与b 的最大公约数也是54 与(122 - 54)的最大公约数: 即有: 122 54 68 54 54 14 40 14 ...... 2 0 代码有: int GreatestCommonDivisor(int a, int b) { int t;
//求最大公因数 int gcd(int x, int y) { int MAX = max(x, y); int MIN = min(x, y); return MAX % MIN == 0? MIN : gcd(MIN, MAX % MIN); } int lcm(int x, int y) { return x * y / gcd(x, y); }
求s=(am)!+(bn)! //凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ #include<stdio.h> void main(){ int a, b, m, n, a_m, b_n, sum, power(int, int), fact(int), add(int, int); printf("Please input a, m, b, n :\n"); scanf("%d %d %d %d", &a
//这是求一个数的质因数,例如:12=2*2*3 其中2,3都是质数.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[array.length] = i; array
//编写一个函数:tt指向一个M行N列的二维数组,求出二维数组每列中最小的元素,并依次放入pp所指的一维数组中.二维数组中的数在主函数中赋予. //重难点:求出的是每一列的最小值,这里要注意,学会简化代码,省去一些多余定义的变量. #include <stdio.h> #define M 3 #define N 4 void fun ( int tt[M][N], int pp[N] ) { //简化代码 int i, j;//不定义变量n,使用i即可.不定义min直接赋值给pp即可. ; i