之前理解错啦,我以为是两个数之间比较呢!!
好吧下面的是两个数之间的比较:
#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);
}