当前位置: 首页 > 知识库问答 >
问题:

查找是否有一个可被输入数字整除的数字

齐夕
2023-03-14

格式如下所示:

输入:第一行包含一个整数T,表示测试用例的数量。第二行包含三个整数a、b和N

输出:对于每个测试用例,在新行中打印第N个数字。

样本输入

1

2 3 10

test_case=input()

if int(test_case)<=100000 and  int(test_case)>=1:
    for p in range(int(test_case)):
        count=1
        j=1

        inp=list(map(int,input().strip('').split()))
        if inp[0]<=10000 and  inp[0]>=1 and  inp[1]<=10000 and  inp[1]>=1 and inp[1]<=1000000000 and  inp[1]>=1:
            while(True ):
             if count<=inp[2] :
               k=j
               if j%inp[0]==0 or j%inp[1] ==0:
                   count=count+1
                   j=j+1

               else       :
                   j=j+1
             else:
                 break
            print(k)     
        else:
            break

共有1个答案

卫景明
2023-03-14

对于每两个数字,将有数字k,这样k=a*bK下的AB的倍数只有这么多。可以创建此集,如下所示:

s = set(a*1, b*1, ... a*(b-1), b*(a-1), a*b)

假设我们取值a=2,b=3,然后取值s=(2,3,4,6)。以下是C的可能值:

[1 - 4]  => (2,3,4,6)
[5 - 8]  => 6 + (2,3,4,6)
[9 - 12] => 6*2 + (2,3,4,6)
... 

请注意,这些值以可预测的模式重复。要获得行,可以使用C的值,并除以集合S的长度(称为N)。设置的索引是cn的mod。为问题中使用的1索引减去1

row = floor((c-1)/n)
column = `(c-1) % n`
result = (a*b)*row + s(column)  
a = 2000
b = 3000
c = 100000
s = list(set([a*i for i in range(1, b+1)] + [b*i for i in range(1, a+1)]))
print((((c-1)//len(s)) * (a*b)) + s[(c - 1)%len(s)])
 类似资料:
  • 我在写一个程序,你输入两个除数,你要检查的数字列表可以被你输入的两个数字整除。 下面是一个输出的示例: 我的问题是它不会检查哪个数可以被两个除数整除,而是打印出来 这是我的代码:

  • 本文向大家介绍C#程序查找数字是否可被2整除,包括了C#程序查找数字是否可被2整除的使用技巧和注意事项,需要的朋友参考一下 如果数字除以2的余数为0,则将被2整除。 假设我们的数字是5,我们将使用以下if-else命令进行检查- 示例 以下是查找数字是否可以被2整除的示例。 输出结果

  • 问题内容: 我需要测试从1到1000的每个数字是3的倍数还是5的倍数。我认为我要这样做的方式是将数字除以3,如果结果是整数,则它将是3的倍数。与5相同。 如何测试数字是否为整数? 这是我当前的代码: 问题答案: 您可以使用模运算符执行此操作, 当且仅当是的精确倍数时,计算结果为true 。在小学数学中,这被称为除法运算的余数。 在您当前的方法中,您执行除法,结果将是 如果使用整数除法,则始终为整数

  • 问题内容: 我正在使用AndEngine将精灵添加到屏幕上,并使用movemodifier方法遇到。 我有两个整数MaxDuration和MinDuration; 我想要做的是当用户达到一定增量的分数时。 例如,当用户达到20(整数改变)时,用户达到40(整数改变)。因此,基本上是20分,每次得分遇到一个20分之一的数字,即整数的变化。我希望这是有道理的。 有什么方法或方法可以做到这一点吗?我有一

  • 检查第一个数字参数是否可被第二个数字整除。 使用模运算符(%)来检查余数是否等于 0 。 const isDivisible = (dividend, divisor) => dividend % divisor === 0; isDivisible(6, 3); // true

  • 问题内容: 我有一个程序,该程序读取两个实数,然后打印出这两个之间的所有数字,这些数字可以被2或3或5整除。该程序可以正常工作,但是当用户输入两个非常大的数字时(例如1122222123333)和214123324434434),程序需要很长时间才能计算出结果。我想以某种方式修复该程序,以便即使对于大量结果也将立即打印出来。 到目前为止,这是我的代码: 问题答案: 好吧,您根本不需要循环。 您知道