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

题目:

正整数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;
}
相关推荐
Jane-66677715 分钟前
C语言——表达式、语句、函数
c语言·开发语言·算法
Tony_yitao22 分钟前
12.华为OD机试 - N个选手比赛前三名、比赛(Java 双机位A卷 100分)
java·算法·华为od·algorithm
小龙报23 分钟前
【算法通关指南:数据结构与算法篇】树形结构遍历指南:DFS 递归深搜与 BFS 队列广搜实战解析
c语言·数据结构·c++·算法·链表·深度优先·visual studio
业精于勤的牙23 分钟前
浅谈:快递物流与算法的相关性(六)
算法
qq_4335545426 分钟前
C++ 二维线性DP
c++·算法·图论
风筝在晴天搁浅29 分钟前
代码随想录 115.不同的子序列
算法
c#上位机35 分钟前
halcon2个区域合并为1个区域—union2
图像处理·算法·计算机视觉·halcon
Aurorar0rua35 分钟前
C Primer Plus 14.17 复习题
c语言·开发语言·数据结构
程序员-King.43 分钟前
双指针/滑动窗口—算法总结与教学指南
经验分享·算法·双指针
小武~1 小时前
Leetcode 每日一题C 语言版 -- 274 H-index
c语言·算法·leetcode