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

题目:

正整数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;
}
相关推荐
tkevinjd1 分钟前
力扣72-编辑距离
算法·leetcode·职场和发展
小刘学技术10 分钟前
AI人工智能决策树分类器:原理、实现与应用
开发语言·人工智能·python·算法·决策树·机器学习·数据挖掘
caimouse1 小时前
mm学习笔记_04:VAD树算法与地址空间分配
笔记·学习·算法·reactos
abcy0712131 小时前
flink窗口类型
开发语言·python·算法
什巳11 小时前
JAVA练习309- 二叉树的层序遍历
java·数据结构·算法·leetcode
什巳14 小时前
JAVA练习306- 翻转二叉树
java·数据结构·算法·leetcode
smj2302_7968265214 小时前
解决leetcode第3989题网格中保持一致的最大列数
python·算法·leetcode
巧克力男孩dd15 小时前
Python超典型练习题(第一次作业)
开发语言·python·算法
爱刷碗的苏泓舒15 小时前
平方根信息滤波:矩阵推导及 GNSS 参数估计应用
线性代数·算法·矩阵·gnss·参数估计·测量平差·平方根信息滤波
想做小南娘,发现自己是女生喵16 小时前
第 2 章 顺序表和 vector
java·数据结构·算法