又是一道数据量大的,如果你从正面按照他题给那个条件遍历一个数,如果他乘以2021然后除一个巨长的数看它余数是否等于一个巨长的数,那么你会超很多时。这个题给了一个非常友好的条件那就是如果存在这个数则输出,说明找到一个数就行了。我们就逆向思维,底数为余数,每次加上一个100000007然后看哪个能整除2021,整除那个结果就是我们要的数
yushu=999999999numb=1000000007i=1while True:if (numb*i+yushu)%2021==0:print("{:.0f}".format((numb*i+yushu)/2021))breaki+=1
注意格式