Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで1からkまでのすべての値で割り切れる最小数xの後続ゼロの数をカウントするプログラム


数k​​があるとします。ここで、1からkまでのすべての値が均等に分割される最小の正の整数値xを考えます。言い換えると、xが1からkまでのすべての数値で割り切れる最小値xを考えます。 xの後続ゼロの数を見つける必要があります。

したがって、入力がk =6のような場合、出力は0になります。ここでの最小のxは60であり、60は1、2、3、4、5、および6を使用して除算できます。末尾のゼロは1つだけです。 60。

これを解決するには、次の手順に従います-

  • res:=0

  • x:=1

  • x * 5 <=k、do

    • res:=res + 1

    • x:=x * 5

  • 解像度を返す

理解を深めるために、次の実装を見てみましょう-

class Solution:
   def solve(self, k):
      res = 0
      x = 1
      while x * 5 <= k:
         res += 1
         x *= 5
      return res
ob = Solution()
k = 6
print(ob.solve(k))

入力

6

出力

1

  1. Pythonのすべての異なるコースをカバーするために最小学期を数えるプログラム

    番号nがあるとすると、1からnまでのラベルが付けられたn個の異なるコースがあることを示します。また、relations [i]にペア(prevCourse_i、nextCourse_i)が含まれる、relationsという配列もあります。これは、コースprevCourse_iとコースnextCourse_iの間の前提条件の関係を表します。したがって、コースprevCourse_iはコースnextCourse_iの前に取得する必要があります。そして、私たちが持っている最後のパラメータはkです。 1学期では、前の学期に受講しているコースのすべての前提条件を満たしている限り、最大k個のコースを受講で

  2. Pythonを使用してすべてのノードに到達するための頂点の最小数を見つけるプログラム

    n個の頂点とノードに0からn-1までの番号が付けられた有向非巡回グラフがあるとします。グラフはエッジリストで表されます。ここで、edges [i] =(u、v)はノードuからノードv。グラフ内のすべてのノードに到達できる頂点の最小セットを見つける必要があります。 (頂点は任意の順序で返すことができます)。 したがって、入力が次のような場合 これらの2つの頂点は他のどの頂点からも到達できないため、出力は[0,2,3]になります。したがって、それらから開始すると、すべてをカバーできます。 これを解決するには、次の手順に従います- n:=エッジのサイズ all_nodes:=