最多约数问题。正整数 x 的约数是能整除x的正整数,其约数的个数记为div(x),例如div(10)=4。设 a 和 b 是两个正整数,找出 a 和 b 之间约数个数最多的数 x 的约数个数。 样例...




之前理解错啦,我以为是两个数之间比较呢!!
好吧下面的是两个数之间的比较:
#include <stdio.h>
#include <math.h>
int main()
{
     int     a, b;
     int     numa = 0, numb = 0, num;
     printf( "输入两个数(中间用空格隔开):" );
     scanf( "%d %d", &a, &b );
     for ( int i = 1; i <= sqrt( a ); i++ )
     {
          if ( a % i == 0 )
          {
               numa++;
          }
     }

     for ( int i = 1; i <= sqrt( b ); i++ )
     {
          if ( b % i == 0 )
          {
               numb++;
          }
     }
     if ( b % 2 == 0 )
     {
          numb = (numb - 1) * 2 + 1;
     }else
          numb = numb * 2;
     if ( a % 2 == 0 )
     {
          numa = (numa - 1) * 2 + 1;
     }else
          numa = numa * 2;


     num = (numa > numb) ? numa : numb;
     printf( "%d\n", num );
     return(0);
}
下面的是真正符合题意得:
如有问题大家提出来交流一下哈
#include <stdio.h>
#include <math.h>
#define max 100
int main()
{
	int	a, b;
	int	big, small, flag;
	int	count[max] = { 0 };
	printf( "输入两个数(中间用空格隔开):" );
	scanf( "%d %d", &a, &b );
	big	= (a > b ? a : b);
	small	= (a < b ? a : b);
	for ( flag = small; flag <= big; flag++ )
	{
		for ( int i = 1; i <= sqrt( flag ); i++ )

			if ( flag % i == 0 )
			{
				count[flag]++;
			}
	}
	for ( flag = small; flag <= big; flag++ )
		if ( flag % 2 == 0 )
		{
			count[flag] = (count[flag] - 1) * 2 + 1;
		}else
			count[flag] = count[flag] * 2;

	for ( flag = small; flag < big; flag++ )
		if ( count[flag] > count[flag + 1] )
		{
			int swap = count[flag];
			count[flag]	= count[flag + 1];
			count[flag + 1] = swap;
		}
	printf( "%d", count[flag] );
	return(0);
}







 

转载于:https://www.cnblogs.com/zhuhengjie/p/5966849.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值