【力扣数论】最大公约数最小公倍数

一.最大公约数   int gcd(int a, int b)
{
    b==0?a:gcd(b,a%b);
}

二.最小公倍数   int lcm(int a,int b)
{
    return a/gcd(a,b)*b;
}

258. 各位相加

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。

输入: num = 38
输出: 2 
解释: 各位相加的过程为:
38 --> 3 + 8 --> 1
11 --> 1 + 1 --> 2
由于 2 是一位数,所以返回 2。

public static void main(String[] args) {
		int num=38;
		while(num>=10) {
			//两位数相加
			int a=0;
			while(num>0) {
				a+=num%10;//取最后一位
				num/=10;
			}
			num=a;//改变后赋值
		}
		System.out.println(num);
	}
}

1250. 检查「好数组」

给你一个正整数数组 nums,你需要从中任选一些子集,然后将子集中每一个数乘以一个 任意整数,并求出他们的和。

假如该和结果为 1,那么原数组就是一个「好数组」,则返回 True;否则请返回 False。

输入:nums = [12,5,7,23]
输出:true
解释:挑选数字 5 和 7。
5*3 + 7*(-2) = 1
public static void main(String[] args) {
		int[] nums = {12,5,7,23};
		int get=nums[0];//
		for (int i = 0; i < nums.length; i++) {
			get= Gcd(get,nums[i]);//递归
		}
		System.out.println(get);
	}
	private static int Gcd(int a, int b) {
		return a%b==0?b:Gcd(b,a%b);//最大公约数
	}

1979. 找出数组的最大公约数

给你一个整数数组 nums ,返回数组中最大数和最小数的 最大公约数 。

两个数的 最大公约数 是能够被两个数整除的最大正整数。

输入:nums = [2,5,6,9,10]
输出:2
解释:
nums 中最小的数是 2
nums 中最大的数是 10
2 和 10 的最大公约数是 2
public static void main(String[] args) {
		int nums[]= {7,5,6,8,3};
		int a=nums[0];
		int b=nums[0];
		for (int i = 0; i < nums.length; i++) {
			if(nums[i]>a) {
				a=nums[i];}
			if(nums[i]

204. 计数质数

你可能感兴趣的:(力扣,java,eclipse,算法,逻辑回归,哈希算法)