给定两个数字a和b,您必须找到第n个数字,它可以被a或b整除 。查找可以被a或b整除的第N个数字
输入: 第一行由整数T组成,表示测试用例的数量。 第二行包含三个整数a,b和N.
输出: 对于每个测试用例,请在一行中打印第N个号码。
限制条件: 1≤t≤10^5
1≤a,b≤10^4
1≤N≤10^9
采样输入
1
2 3 10
样本输出
15
说明 其是被2整除或3中的数字:2,3 ,4,6,8,9,10 ,12,14,15和10号数为15
我的代码(C)中是:
#include<stdio.h>
int main()
{
long long int i,a,b,n,j,c=0,small;
scanf("%lld",&i);
while(i--)
{
scanf("%lld%lld%lld",&a,&b,&n);
if(a==b)
{
printf("%lld ",a*n);
return 0;
}
else
{
if(a>b)
small = b ;
else
small = a ;
for(j=small;1;j++)
{
if(j%a==0 || j%b==0)
c++ ;
if(c==n)
break ;
}
}
printf("%lld",j);
}
return 0 ;
}
但它不是有效时(即需要超过1秒) 上输入:1000 10000 100000000
你能给这个问题的链接? –
@ MD.KhairulBasar Aquestion必须是独立的。不要求链接,但要在**文本中说明**。 – Olaf
如果代码是正确的,这可能更适合代码审查,而不是堆栈溢出。 – Olaf