excel求素數,請教 在Excel裡怎麼設質數公式?

時間 2022-10-27 13:05:47

1樓:匿名使用者

需要編個vba。

思路:x的平方根+1為測試數上限,2為測試數下限。x除以測試數,逐個試,如果出現餘數為0的,則x是合數,否則x為素數。

**要幫忙寫嗎?

不用vba,可以用公式:

=if(and(a2>4,int(a2)=a2,sumproduct((mod(a2,row(indirect("2:"& int(sqrt(a2)))))=0)*1)=0)+(a2=2)+(a2=3),"質數","非質數")

結果74個質數:

1680253 1680269 1680271 1680277 1680313 1680317 1680319 1680323 1680359 1680361 1680373 1680377 1680401 1680407 1680421 1680431 1680439 1680457 1680461 1680491

1680509 1680527 1680529 1680551 1680557 1680583 1680589 1680593 1680617 1680643 1680647 1680659 1680689 1680697 1680703 1680709 1680743 1680761 1680779 1680787

1680793 1680803 1680821 1680823 1680839 1680859 1680871 1680881 1680893 1680901 1680907 1680919 1680929 1680961 1680967 1680979 1680983 1681003 1681007 1681027

1681033 1681061 1681073 1681091 1681103 1681129 1681151 1681157 1681187 1681193 1681201 1681219 1681241 1681247

2樓:德拉姆拉

=if(and(a1>合數","質數"),if(or(a1=),"質數","合數"))

陣列公式:ctrl+shift+enter確定公式

如何算出乙個數的所有質數

3樓:

1、找到這個數字的平方根m=√m

2、找到不大於m的所有質數。

3、在一張自然數表上劃掉所有質數的整數倍(質數本身不劃掉)

4、把1劃掉。

5、沒有劃掉的數字就是質數。

例如,我們要找到100以內的所有質數,只需要按照下面的步驟進行:

1、計算100的平方根,是10。

2、10以內的質數有2、3、5、7

3、劃掉2、3、5、7的整數倍。首先劃掉2的倍數,如4、6、8…、98、100,然後劃掉3的倍數,如6、9、12、15、…、99, 重複的就不需要再劃掉了。然後劃掉5的倍數,7的倍數。

4、最後劃掉1。

擴充套件資料

質數與黎曼猜想

我們之前談到:質數與黎曼猜想之間有著千絲萬縷的聯絡。1896年,法國科學院舉行比賽:徵稿證明黎曼定理。兩位年輕的數學家阿達馬和德·拉·瓦萊布桑獲得了這一殊榮。

實際上這兩位數學家並沒有證明黎曼猜想,只是獲得了一點進展,但是這一點進展就一舉證明了尤拉和勒讓德的猜想,把素數猜想變成了素數定理。黎曼猜想的威力可見一斑。

1901年,瑞典數學家科赫證明:如果黎曼猜想被證實,那麼素數定理中的誤差項c大約是√xln(x)的量級。

即便黎曼猜想被證實,人們也只是在質數規律探索的過程中更近了一步,距離真正破解質數的規律,還有很長的路要走。也許質數就是宇宙留給人類的密碼。

4樓:取道加油

有一些找到質數(除1以外,只能被本身和1整除的自然數)的方法。其中最古老的叫做「埃拉託斯特尼篩法」--埃拉託斯特尼是一位古希臘數學家。先從2開始寫出一組連續自然數,直至某個最大值。

然後劃掉所有2的倍數,那麼第乙個沒被劃掉的數字也是質數:3.現在劃掉所有3的倍數,並重複之前的行為。

每次被留下的第乙個數字都是質數。

5樓:絳芸客

首先,正如樓上所說,比較小的數字可以通過輔助工具求解。

但是將任意合數的所有質數求解是一項國際數學難題,至今沒有人破解。

順便說一下,現今電腦系統的密碼措施就是基於這個技術,簡單來講,就是找乙個極大的數,密碼就是這個數的所有質數因子,如果可以有演算法確定他的所有質數,那麼現今的所有電腦密碼就可以被簡單破解了。

excel中怎樣判斷某單元格數值是否是質數

6樓:

=if(and(a1>>1,"合數","質數"),"非質非合")

按ctrl+shift+enter結束輸入(陣列公式)。

excel高手用vba如何算200以內輸出所有素數

7樓:魚木混豬喲

private sub command2_click()dim str1 as string

for i = 2 to 200

for j = 2 to int(sqr(i)) + 1if i mod j = 0 then

exit for

elseif j = int(sqr(i)) + 1 thenstr1 = str1 + str(i)

end if

next

next

msgbox str1

end sub

8樓:匿名使用者

這個不難的,看下私信.

請教:在excel裡怎麼設質數公式?

9樓:

按下alt+f11,點選單上的"插入"-"模組",然後複製下面**退出.

假設如果你在a1輸入乙個數字.

在b1輸入

=zs(a1)

b1就會判斷a1的數字是否是質數.

public function zs(byval n as integer) as string

dim m as integer

for x = 1 to n

a = n / x

if int(a) = a then

m = m + 1

end if

next

if m <= 2 then

zs = "質數"

else

zs = ""

end if

end function

10樓:註冊並啟用成功

樓上兩位的答案都不錯,不過既然樓主要求的最大數字是70,公式還可以簡單點

=if(and(or(mod(a1,2)=0,mod(a1,5)=0,mod(a1,7)=0,mod(a1,11)=0),or(a1<>2,a1<>5,a1<>7,a1<>11)),"","質")

11樓:匿名使用者

假設在a1單元格是要判斷的資料,則在其他空白單元格(如a2)輸入陣列公式(輸入方法:輸入公式後,不是按回車,而是按組合鍵 ctrl+shift+enter):

=if(and(a1>合數","質數"),if(or(a1= ),"質數","合數"))

即可判斷出a1裡的資料是質數還是合數。不過,要注意其範圍:可判別不大於4295098368的數(包括小數和所有負數),可判別出的最大質數為4295098349

如何判斷質數/合數:如果乙個數能被從2到 其開平方數值 之間的任意整數整除,則該數是合數,否則是質數。

該公式求解的核心思想是:利用陣列函式得到從2到該數開平方的整數的列表,然後用該數依次除以各整數,得出的商取整,然後再乘以該數,如果得出的結果與該數相等,則說明該數能被從2到其開平方數值 之間的某個或多個整數整除,該數就是合數,否則是質數。

excel如何製作餅圖,怎麼在EXCEL裡製作餅圖

開啟excel,假設我們有下表資料,是關於目前只能手機市場份額的調查。那麼如果我們需要匯報工作,請選擇使用餅狀圖來表述。選擇插入,餅圖,選擇二維餅圖第乙個。在 區域右擊,選擇資料 在彈出的視窗區域框選預先準備好的分析內容。這樣簡單的餅圖就做好了。這個時候有點粗俗。右擊餅狀圖,選擇新增資料標籤 其實這...

怎麼在EXCEL裡設定隨機的時間段

基本方法是使用randbetween函式生成介於兩個指定數字之間的隨機數。具體公式如下 randbetween value x 00 1000000,value y 00 1000000 1000000 解釋 1 value函式將文字型時間 x 00 和 y 00 變成數值。2 分別乘以又除以100...

在excel裡利用vba怎麼對指定單元格,或區域單元格保護

在excel的工具功能中進入vba編輯器執行巨集保護公式的功能,即可對指定單元格,或區域單元格進行保護。具體操作步驟如下 3 點選excel工作薄的工具 巨集 4 在彈出的介面選擇保護公式,點選執行。5 最後按alt f11在彈出的介面輸入密碼即可。注意事項 為了避免別人進入vba編輯模式檢視解鎖密...

如下圖,在Excel裡怎麼批量把一列文字自動分為A選項,B選項,C選項,並用pp標籤包含起來

答 編寫自定義函式來實現。按alt f11組合鍵,開啟vb視窗,執行 插入 模組 複製下面 進去。回到工作表使用該公式如 tran a1 function tran rng as range dim arr as variant dim str as string dim i as integer ...

在Excel裡怎麼樣設定同單元格裡文字間的行距

調行距專門選項似乎沒有,但行距也是可調整的 1 摁住alt鍵敲回車,就可以完成單元格內的文字換行。把這時兩行行距作為最小值。2 加大行距時,就在兩行中間插入空白行。3 微調行距,就是改變空白行的字型大小。其最小字型大小為6,你也可以輸入2,令其進一步縮小行距。以上操作,可基本滿足你的需要。首先說明,...