0
点赞
收藏
分享

微信扫一扫

寻找整数(第十三届蓝桥杯大赛pythonB组B题)

技术只适用于干活 2022-05-02 阅读 64
python

#即证x%n得0则y%n=z则(ax+y)%n=z,其中a,n为常数,转化题目为求出所以质数的公约数
m=[1,2,1,4,5,4,1,2,9,0,5,10,11,14,9,0,11,18,9,11,11,15,17,9,23,20,25,16,29,27,25,11,17,4,29,22,37,23,9,1,11,11,33,29,15,5,41,46]
def g():
    s=187
    k=187
    i=1#加数
    t=1
    q=[(47,5),(43,11),(41,1),(37,22),(31,27),(29,16),(19,18),(23,15)]
    while q:
        if s%q[0][0]==q[0][1]:
            i*=q[0][0]
            q.pop(0)
        else:
            t+=i#?
            s=k*t
    #return t,i
    for a in range(t,10**17,i):
        s=k*a
        if s%49==46:
            l=[]
            for i in range(2,49+1):
                  l.append(s%i)
            if l==m:
               return s
            
print(g())
举报

相关推荐

0 条评论