pyobfuscate通過多種方式改變?cè)创a,一些可以被反解,一些不可以。
pyobfuscate的混淆時(shí)做了以下事:首先,編程的介紹需要一個(gè)循序漸進(jìn)的過程,我們需要了解基本的編程語法,從解決基本的數(shù)學(xué)問題開始,然后開始學(xué)習(xí)編程語言。以學(xué)習(xí)java編程語言為例,我們首先需要了解java語言中的基本編程元素,包括類、對(duì)象、屬性和方法。然后我們開始學(xué)習(xí)如何構(gòu)建面向?qū)ο蟮木幊踢^程,包括類設(shè)計(jì)、對(duì)象創(chuàng)建和方法調(diào)用。在學(xué)習(xí)了基本的過程控制之后,我們可以解決一些簡(jiǎn)單的數(shù)學(xué)問題,例如,在指定的范圍內(nèi)尋找素?cái)?shù),等等。這個(gè)過程是打開編程之門的第一步。通過這一階段的學(xué)習(xí),我們也可以在一定程度上培養(yǎng)自己對(duì)編程的興趣。
其次,編程之初構(gòu)建了初步的編程思路。所謂編程思維就是通過編程語言來解決問題的方法,它只是一個(gè)抽象的過程。鍛煉編程思維最有效的方法之一就是完成大量的實(shí)驗(yàn)。通過不斷的實(shí)驗(yàn)總結(jié),形成自己的編程思路。因此,如果說學(xué)習(xí)編程有捷徑的話,那就是不斷地做實(shí)驗(yàn)。
最后,入門級(jí)編程需要一個(gè)完整的知識(shí)結(jié)構(gòu),包括操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)庫、算法設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)。在當(dāng)前的大數(shù)據(jù)和云計(jì)算時(shí)代,我們還需要掌握大數(shù)據(jù)和云計(jì)算的相關(guān)知識(shí),特別是IAAs和PAAS。這些知識(shí)可以在學(xué)習(xí)程序設(shè)計(jì)語言的過程中同時(shí)習(xí)得,對(duì)這些內(nèi)容的掌握將對(duì)程序設(shè)計(jì)能力產(chǎn)生很大的影響。
最后,目前有許多編程語言。對(duì)于基礎(chǔ)薄弱的初學(xué)者,他們可以從Python開始。
質(zhì)數(shù):2、3、5、7、11、13、17、19、23、29……(OEIS中的數(shù)列A000040)
梅森質(zhì)數(shù):3、7、31、127、8191、131071、524287、2147483647……(OEIS中的數(shù)列A000668)
費(fèi)馬質(zhì)數(shù):3、5、17、257、65537(目前只找到5個(gè))(OEIS中的數(shù)列A019434)
幸運(yùn)質(zhì)數(shù):3、7、13、31、37、43、67、73、79、127……(OEIS中的數(shù)列A031157)
孿生質(zhì)數(shù)(前項(xiàng)):3、5、11、17、29、41、59、71、101、107……(OEIS中的數(shù)列A001359)
孿生質(zhì)數(shù)(后項(xiàng)):5、7、13、19、31、43、61、73、103、109……(OEIS中的數(shù)列A006512)
非正規(guī)質(zhì)數(shù)(irregular prime):37、59、67、101、103、131、149、157、233、257……(OEIS中的數(shù)列A000928)
畢達(dá)哥拉斯質(zhì)數(shù)(Pythagorean prime):5、13、17、29、37、41、53、61、73、89……(OEIS中的數(shù)列A002144)
陳質(zhì)數(shù)(Chen prime):2、3、5、7、11、13、17、19、23、29、31、37、41、47……(OEIS中的數(shù)列A109611)
普羅斯質(zhì)數(shù)(Proth prime):3、5、13、17、41、97、113、193、241、257……(OEIS中的數(shù)列A080076)
階乘素?cái)?shù):2、3、5、7、23、719、5039、39916801、479001599……(OEIS中的數(shù)列A088054)
反素?cái)?shù):13、17、31、37、71、73、79、97、107、113……(OEIS中的數(shù)列A006567)
強(qiáng)素?cái)?shù):11、17、29、37、41、59、67、71、79、97……(OEIS中的數(shù)列A051634)
瓦格斯塔夫質(zhì)數(shù):3、5、7、11、13、17、19、23、31、43……(OEIS中的數(shù)列A000978)
愛森斯坦質(zhì)數(shù)(Eisenstein prime):2、5、11、17、23、29、41、47、53、59……(OEIS中的數(shù)列A003627)
安全質(zhì)數(shù):5、7、11、23、47、59、83、107、167、179……(OEIS中的數(shù)列A005385)
索菲熱爾曼質(zhì)數(shù):2、3、5、11、23、29、41、53、83、89……(OEIS中的數(shù)列A005384)
胡道爾質(zhì)數(shù):7、23、383、32212254719、2833419889721787128217599……(OEIS中的數(shù)列A050918
#include<stdio.h>//加載函數(shù)庫
#include<math.h>//加載函數(shù)庫
main()
{
intm,k,i,n=0;//定義變量mkin為整型,而且n的初始值為0
for(m=101;m<200;m+=2)//for循環(huán)從101到200,步進(jìn)為2,因?yàn)榕紨?shù)為非素?cái)?shù),使用步進(jìn)為2,判斷奇數(shù)中的素?cái)?shù)
{
k=sqrt((double)m);//判斷素?cái)?shù)方法:m對(duì)2到m的開方的所有數(shù)都不能夠整除,k取m的開方
for(i=2;i<=k;i++)//for循環(huán)從2到m的開方k
if(m%i==0)//m對(duì)i求余,求余為0則表示m能夠別i整除
break;//如果m能夠別i整除,則表示m為非素?cái)?shù),退出素?cái)?shù)判斷的循環(huán)
if(i>k)//判斷i是否大于k,即當(dāng)m為素?cái)?shù)時(shí),m不能夠被2到k的數(shù)整除,則判斷素?cái)?shù)的循環(huán)不會(huì)中途退出,則循環(huán)執(zhí)行完后i=k+1
{
printf("%4d",m);//輸出素?cái)?shù)
n++;//素?cái)?shù)的個(gè)數(shù)+1
}
if(n%10==0)//輸出10個(gè)素?cái)?shù)則換行輸出
printf("\n");//輸出換行
}
printf("\n");//輸出換行
}