Answers:
p=90930641353124136621573325641513715557077985927835294018496194596645372722158;q=101979812089012306249375934082966806799688507587087308196267706260111970225882#--223444799
lambda n:pow(n,pow(65537,(p*q-2*(p+q))/4,p*q),~p*~q)
(默认的c4.8xlarge斑点限制为4,但去年我设法将其提高到10。虽然不得不将FAAS配置从16个从属调整为6个(+3 mpi,1个主控)。20m polyselect,12h 50m筛分,2h 2500万linalg,3000万平方英尺,总成本〜$ 70。至少@orlp足以选择一个可解决的尺寸,但是我不再这样做了!感谢@IlmariKaronen的最后一步,是的,我在开玩笑猜:P)
原版的:
#((()))****+,,---/2289;==oppppppqqqqqw~~
lambda n:pow(n,65537,10998167423251438693)
裂纹:
p=3207399658;q=3428998126#--11
lambda n:pow(n,pow(65537,(p*q-2*(p+q))/4,p*q),~p*~q)
Wolfram Alpha完成了RSA破解。;)
~p*~q
比短-~p*-~q
,哎呀。
(p*q-2*(p+q))/4
零件进行逆向工程的?:)
p
和q
(以假乱真,一个代码是p-1
和q-1
打高尔夫球的目的),这样(p-1)/2
是素数,使我们有φ(φ(pq)) = ((p-1)/2-1)((q-1)/2-1)
。这使我们能够使用Euler的身份来计算65537
mod 的模逆φ(pq)
(对于RSA需要什么),使答案短很多,因为我们不需要实现模逆逻辑或对另一个大常数进行硬编码。除了-~q*-~p
->外~q*~p
,您确切地找到了我的功能:)
φ(φ(pq)) = 2((p-1)/2-1)((q-1)/2-1)
对于安全素数p
和q
的,因为φ(4) = 2
。但是λ(φ(pq)) = lcm(2, (p-1)/2-1, (q-1)/2-1)
最多为((p-1)/2-1)((q-1)/2-1)/2
,并且其中的任何倍数减一都会对指数起作用。:)
from bisect import*
q=int(input())
print(bisect([(h+1)**2 for h in range(q)],q))
这真的很难破解!我使用bisect库,该库包含在Python 3发行版中。该bisect
函数接受一个已排序的列表和一个元素,并返回可以插入该元素以保持顺序的最右边的索引。我们只需给它的长度- q
从开始平方列表1
和元素q
。
(h+1)
为-~h
。然后我意识到这不是挑战的重点:P
**
优先级高于~
Python。我想这比在JS中-~2**2
抛出语法错误(“无括号的一元表达式不能出现在'**'的左侧”)更好。
**
在ES2017中添加的运算符)
原版的:
float igetuwebaoli(int p){return p*(((17*-4*-3)))+0+0;}//,,
裂纹:
int loabewuteg(float p,i){return (i+0**+0,(p/17/(-4*-3)));}
好吧,这很容易。最困难的部分是弄清楚在哪里粘贴多余的逗号和星号。幸运的是,Processing似乎允许额外的未使用函数参数以及C样式的逗号表达式。
原版的:
x=>eval(atob`eCp4KzEvLyAgfXBModLS4TvEn4wp1iys9YRRKC85KLIhNMC=`)
裂纹:
x=>eval(atob`CgpNYXRoLnBvdyh4LTEsMC41KSAvLw4589CEIKKMRefipyz=`)
上面的base64代码解码为:
Math.pow(x-1,0.5) //...
在哪里 ...
代表一堆随机垃圾,JS解释器会忽略它们,因为它在注释中。
我通过反复试验找到了该解决方案。最终,唯一真正棘手的部分是两个新行的代码的开始,使其余的线路正确,并得到所需要M
的Math
为Base64编码到的东西,在原来的字符集是可用的。我首先尝试了空格,但是将" M"
base64编码到其中,"ICBN"
并且我需要唯一可B
用于".po"
稍后在代码中进行编码的代码。 "0+M"
,"1*M"
,"1?M"
或其他任何类似的无操作前缀我能想到的,没有任何工作,但换行一样。
我怀疑这可能不是确切的解决方案,但是无论如何,它都能起作用。:)
演示:
var f = x=>eval(atob`eCp4KzEvLyAgfXBModLS4TvEn4wp1iys9YRRKC85KLIhNMC=`)
var g = x=>eval(atob`CgpNYXRoLnBvdyh4LTEsMC41KSAvLw4589CEIKKMRefipyz=`)
for (var i = -0; i <= 10; i++) console.log(i, '->', f(i), '->', g(f(i)))
((((()()())){}[()]){}{}{})
([(((()())()){}){}{}](){})
lambda x:sorted(a**2for a in range(x)).index(x)
5#.[:,(3 5&#:(-$]-)7)#.inv"0]
[:(](07-5)"3 #.-:&#$,)5#.inv]
另一个等效的裂纹是
[:((3 ]7-5)#.-:&#$,)5#.inv"0]
[:(](07-5)"3 #.-:&#$,)5#.inv] Input: integer n
] Get n
5 The constant 5
#.inv Get the digits of n in base 5
[:( ) Operate on those digits D
, Flatten D (does nothing since it is already a list)
# Get the length of D
-:& Halve it
$ Reshape D to half its length (only the base 2 digits)
(07-5)"3 The constant 2 with rank 3
#. Convert the front-half of D to a decimal from base 2
] Return the right result