PajmASO 2020-04-11 22:40 采纳率: 0%
浏览 640

有关gcd与lcm的一道题的代码优化

题目:

已知正整数 a0,a1,b0,b1,设某未知正整数 x 满足:
1. x 和 a0 的最大公约数是 a1 2. x 和 b0 的最小公倍数是 b1
求解满足条件的 x 的个数。请你帮助他编程求解这个问题。
对于 100%的数据,保证有 1≤a0,a1,b0,b1≤2,000,000,000。
输入格式:
第一行为一个正整数 n,表示有 n 组输入数据。n≤2000
接下来的 n 行每行一组输入数据,为四个正整数 a0,a1,b0,b1,之间用一个空格隔开。
输出格式:
共n 行。每组输入数据的输出结果占一行,为一个整数。 对于每组数据:若不存在这样的 x,请输出 0; 若存在这样的 x,请输出满足条件的 x 的个数;
代码:

#include
int gcd(int a,int b)
{
if(a%b==0)
return b;
else
return gcd(b,a%b);
}
int lcm(int a,int b)
{
return a*b/gcd(a,b);
}
int main()
{
int N,count = 0;
scanf("%d",&N);
int a0,a1,b0,b1;
for(int i = 1;i <= N;i++)
{
scanf("%d %d %d %d",&a0,&a1,&b0,&b1);
for(int j = 1;j <= b1 / a1;j++)
{
if(gcd(j,a0/a1) == 1)
{
if(lcm(j*a1,b0) == b1)
count++;
}
}

printf("%d\n",count);
count = 0;
}
}

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-09 15:33
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 有偿求答 无导出权限怎么快速导出企业微信微文档
  • ¥15 求解答,怎么数码管中这么加入闹钟或者传感器,这应该怎么加入相应的代码
  • ¥15 scottplot5
  • ¥30 想问问这个建模怎么编程没有思路
  • ¥15 关于imageENview(ImageEN)中新建图层并根据鼠标位置添加图标
  • ¥100 用两台电脑局域联网进行MT5的EA参数优化,但是连接不上,日志提示:
  • ¥15 FastAPI报错: AsyncSession不是有效Pydantic类型
  • ¥50 这Mac系统提示虚拟内存不足,怎么解决
  • ¥15 Rs232电路无法收发数据,求帮助
  • ¥15 百度cookie扫码登录器