算法设计与分析 | 最多约数

题目:

正整数x的约数是能整除x的正整数。正整数x 的约数个数记为div(x)。例如,1,2,5,10 都是正整数10 的约数,且div(10)=4。设a 和b 是2 个正整数,a≤b,找出a和b之间约数个数最多的数x。

输入

对于给定的2个正整数a≤b。

输出

编程计算a 和 b 之间约数个数最多的数的数量,和约数最多的数。

分析

可以写一个统计约数个数的方法div(),然后在main里面写一个for循环,找出约数个数最多的数。

代码

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>
//最多约数
int div(int n){
	int count = 0;//统计约数个数
	for (int i = 1; i <= n; i++) {
		if (n % i == 0) {
			count++;
		}

	}
	return count;
}
int main() {
	int first, end;//区间数
	scanf("%d %d", &first, &end);
	int max = 0, maxNum = 0;
	for (int j = first; j <= end; j++) {
		int temp = div(j);
		if (temp > max) {//如果约数个数比max大,则将该数赋给max,并记录下该约数最多的数
			max = temp;
			maxNum = j;
		}
	}
	printf("%d %d", max, maxNum);

	return 0;
}
相关推荐
古城小栈3 小时前
为啥说:训练用BF16,推理用FP16
人工智能·算法·机器学习
KaMeidebaby3 小时前
卡梅德生物技术快报|蛋白 N 端测序在重组贻贝融合蛋白表征中的应用,解决原核表达序列偏移工艺难题
前端·人工智能·物联网·算法·百度
Turbo正则3 小时前
群论在AI中的应用概述
人工智能·算法·抽象代数
ysa0510303 小时前
【并查集】判环
c++·笔记·算法
Jerry4 小时前
KeetCode 44. 开发商购买土地
算法
Jerry4 小时前
KeetCode 58. 区间和
算法
Jerry5 小时前
LeetCode 209. 长度最小的子数组
算法
彦为君5 小时前
算法思维与经典智力题
java·前端·redis·算法
智能优化与强化学习6 小时前
Gym(Gymnasium)仿真环境详解(二):环境简介、入门算法、调参要点、核心挑战
算法·强化学习·gym·零基础入门·算法评估
mxwin6 小时前
Unity Shader exp 函数的算法与渲染应用
算法·unity·游戏引擎·shader