哐哐蜜柑614 2021-11-30 18:35 采纳率: 100%
浏览 53
已结题

反素数 这样写错哪里了

问题描述
给定一个整数x,定义g(x)是x的因子个数。现在给你一个整数区间[a,b],请你求出该区间的x使g(x)最大。

输入
第一行是一个整数n,接下来总共n行。

每行两个正整数a和b, 1<=a<=b<=5000,表示闭区间[a,b]。

输出
对每组测试数据,在单独的一行中输出一个整数,即对应的区间因子最多的数,如果满足条件有多个,则输出其中最小的数。

输入样列
3
2 3
1 10
47 359
输出样例
2
6
240
#include<stdio.h>
int main()
{
int t;
int a,b,max,z,num;
int i,j;
scanf("%d",&t);
while(t--){
max=0;
z=0;
scanf("%d%d",&a,&b);
for(i=a;i<=b;i++){
for(j=1;j<i/2;j++){
if(i%j==0) z++;
}
if(z>max){
max=z;
num=i;
}
}
printf("%d\n",num);
}
return 0;
}

  • 写回答

2条回答 默认 最新

  • 南七灵 2021-11-30 18:45
    关注

    稍微改了一下,你对比着看看

    #include <stdio.h>
    int main()
    {
        int t;
        int a, b, max, z, num;
        int i, j;
        scanf("%d", &t);
        while (t--)
        {
            max = 0;
            scanf("%d%d", &a, &b);
            for (i = a; i <= b; i++)
            {
                z = 0;
                for (j = 1; j <= i/2; j++)
                {
                    if (i % j == 0)
                        z++;
                }
                if (z > max)
                {
                    max = z;
                    num = i;
                }
            }
            printf("%d\n", num);
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月2日
  • 已采纳回答 12月1日
  • 创建了问题 11月30日

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?