天天看點

第三周作業1

這周作業1是看懂張老師的一個C#程式(http://www.cnblogs.com/qingxu/p/5279438.html)

剛開始沒看懂,一位Int64.MaxValue的值為64,(T_T),我太天真了,

其實他是想找一個數,不能被rg數組中兩個連續的數整除,能被這兩個數後的所有 數整除,将這樣的一個數列印出來。

1,首先排除2~15的15 個數,因為能整除16~30的數一定能整除2~15

2,從16開始連續2個數不能被整除,去最小為16,17,

是以這個數為7*8*11*13*19*23*25*27*29*31=2123581660200

為啥呢首先假如這個數為31!=31*30*29*28*27*26*25*24*23*22*21*20*19*18*17*16*15*14*13*12*11*10*9*8*7*6*5*4*3*2*1

則30=10*3,是以30可以約掉,同理,28=4*7,可以約掉,

同理剩下質數之積=31*29*23*19*17*13*11*7*5*3*2

但是由于這個數還必須整除27=3*3*3,約掉3乘27

25=5*5,約掉5乘以25

16=8*2,但是上面推出不能整除16,是以約掉2再乘8

這個數最小=31*29*23*19*17*13*11*7*27*25*8=2123581660200

現在說說為啥是選16,17

取個極端的兩個數,如果30,31不能整除,在31,29,23,19,17,13,11,7,27,25,8中去掉31再16*17,而31<16*17

是以選不能整除16,17

3我沒看懂其他的做法,

運作時間不會計算,參考同學的(http://www.cnblogs.com/yzdd/p/5283887.html#3385425)也沒看懂...

單核CPU4.0G HZ 執行速度為4*10^9/s。(2)外層循環2123581660200次。(3)執行一次%操作用80個CPU周期(http://blog.sina.com.cn/s/blog_65ba9a5e0102v2ih.html)。(4)内層循環次數取決于i,i奇數5次(不能整除2,4),i偶數估計最多執行15次,(方法類似于附錄一 2)平均8次。因為i連續增長即i 奇偶交替,是以兩種情況取平均值再加上其他判斷和指派語句,得出内層循環次數約為80*(7+5)=960次。(5)總次數=外層*内層(6)執行時間=總次數/每秒執行速度*60=8500min