導航:首頁 > 編程語言 > 編程找出素數

編程找出素數

發布時間:2022-07-02 05:25:35

㈠ 查找100以內的所有質數的python編程怎麼寫

質數(prime number)又稱素數,有無限個。質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數的數稱為質數,如:2、3、5、7、11、13、17、19。
方法一:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
num=[];
i=2
for i in range(2,100):
j=2

for j in range(2,i):
if(i%j==0):
break

else:
num.append(i)
print(num)

方法二:
import mathdef
func_get_prime(n):
return filter(lambda x: not [x%i for i in range(2, int(math.sqrt(x))+1) if x%i ==0], range(2,n+1))
print func_get_prime(100)

輸出結果為:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

希望我的回答對你有幫助!

㈡ 編寫一個C語言程序判斷一個數是否是素數

目的:判斷一個數是否為素數

#include<stdio.h>


intmain(void)


{


int m;


inti;


scanf("%d",&m);


for(i=2;i< m;i++) //2到(m-1)的數去除m


{


if(m%i==0)//判斷能否整除


break;

}

if(i== m)


printf("YES! ");


else


printf("No! ");


}

for循環的功能:

①若能整除,通過break跳出函數;

②若一直到m-1都不能整除,此時i再自增1到m,不滿足i< m跳出for循環,這時i= m。

(2)編程找出素數擴展閱讀:


素數定理:



1、在一個大於1的數a和它的2倍之間(即區間(a,2a]中)必存在至少一個素數。



2、存在任意長度的素數等差數列。



3、一個偶數可以寫成兩個合數之和,其中每一個合數都最多隻有9個質因數。(挪威數學家布朗,1920年)。



4、一個偶數必定可以寫成一個質數加上一個合成數,其中合數的因子個數有上界。(瑞尼,1948年)。



5、一個偶數必定可以寫成一個質數加上一個最多由5個因子所組成的合成數。後來,有人簡稱這結果為(1+5)(中國潘承洞,1968年)。



6、一個充分大偶數必定可以寫成一個素數加上一個最多由2個質因子所組成的合成數。簡稱為(1+2)。

㈢ C語言編程找出100以內素數

1.素數就是一個大於1的自然數,除了1和它本身外,不能被其他自然數整除

#include<stdio.h>

boolIsPrime(intn)
{
if(n<=1)returnfalse;
if(n%2==0)returnn==2;

for(inti=3;;i+=2)
{
if(i>n/i)break;//等價於i*i>n,不用開方
if(n%i==0)returnfalse;
}
returntrue;
}

intmain()
{
for(intn=0;n<=100;n++)
if(IsPrime(n))
printf("%3d",n);
return0;
}

㈣ 用C語言編程找出素數,要求定義個函數,在指定范圍內比如7位數內找出素數,統計個數並輸出,初學者

忘了計數了,改下:


#include "stdafx.h"

#include <iostream>

using namespace std;


int sushu(int k)

{

int yes = 1;

for (int i = 2; i <= sqrt(k); i++)

if (k%i == 0)

yes = 0;

return yes;

}

int main()

{

int n,count=0;

cout << "請輸入數字范圍:" << endl;

cin >> n;

for (int i = 2; i <= n; i++)

{

if (sushu(i))

{

cout << i << " ";

count++;

}

}

cout << "總數:" << count << endl;

system("pause");

return 0;

}

㈤ python中如何編程求1到100之間的素數

1、新建python文件,testprimenum.py;

㈥ 求"求素數的C語言程序"

#include <stdio.h>

int main()

{

int a=0;

int num=0;

int i;

printf("輸入一個整數:");

scanf("%d",&num);

for(i=2;i<num;i++){

if(num%i==0){

a++;

}

}

if(a==0){

printf("%d是素數。 ", num);

}else{

printf("%d不是素數。 ", num);

}

return 0;

}

(6)編程找出素數擴展閱讀:

質數又稱素數。一個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數。

基本演算法:若 k%m==0 則說明 k 不是素數。

判斷整數n是否為素數——採用枚舉法求解。

採用枚舉演算法解題的基本思路:

(1)確定枚舉對象、枚舉范圍和判定條件;

(2)枚舉可能的解,驗證是否是問題的解。

枚舉演算法的一般結構:while循環。

參考資料來源:網路-枚舉法




㈦ 編程輸出1000以內的所有素數

先找出素數的特徵,然後寫循環。

for(int i=2;i<1000;i++){

for(int j=i/2;j>=0;j--){

if(j==1){

printf("%d ",j);break;

}

if(i%j==0)break;

}

}

(7)編程找出素數擴展閱讀:

對於B=36N+1 形數而言。

若不定方程(3N)^2+N-(B-1)/36=W^2 有整數解,

則 6(3N-W)+1 是小因子數;6(3N+W)+1 是大因子數。

若不定方程 (3N)^2-N-(B-1)/36=W^2 有整數解,

則 6(3N-W)-1 是小因子數;6(3N+W)-1 是大因子數。

兩式都無解,是素數。

㈧ C語言求100以內素數的問題

#include<stdio.h>

int main()

{

int i=0;

int count=0;

for(i=0;i<=100;i++)

{

int j=0;

for(j=2;j<=i;j++)

{

if(i%j==0)

{

break;

}

}

if(i==j)

{

count++;

printf("%d ",i);

}

}

printf(" count=%d ",count);

return 0;

}

解題思路:

素數,就是除了1和他本身,不能被其他數整除的數字。答案就是用100到200之間的每個數字,除以2到其本身前面的那一個數字,如果此過程中出現整除的現象,則該數不是素數。如果沒有整除的現象,則該數為素數輸出。

(8)編程找出素數擴展閱讀:

質數又稱素數。一個大於1的自然數,除了1和它自身外,不能整除其他自然數的數叫做質數;否則稱為合數。

質數的個數是無窮的。歐幾里得的《幾何原本》中有一個經典的證明。它使用了證明常用的方法:反證法。具體證明如下:假設質數只有有限的n個,從小到大依次排列為p1,p2,……,pn,設N=p1×p2×……×pn,那麼,要大於p1,p2,……,pn,所以它不在那些假設的素數集合中。

㈨ 在編程中怎樣確定一個數是不是素數

素數是這樣的整數,它除了能表示為它自己和1的乘積以外,不能表示為任何其它兩個整數的乘積。例如,15=3*5,所以15不是素數;又如,12=6*2=4*3,所以12也不是素數。另一方面,13除了等於13*1以外,不能表示為其它任何兩個整數的乘積,所以13是一個素數。
有的數,如果單憑印象去捉摸,是無法確定它到底是不是素數的。有些數則可以馬上說出它不是素數。一個數,不管它有多大,只要它的個位數是2、4、5、6、8或0,就不可能是素數。此外,一個數的各位數字之和要是可以被3整除的話,它也不可能是素數。但如果它的個位數是1、3、7或9,而且它的各位數字之和不能被3整除,那麼,它就可能是素數(但也可能不是素數)。沒有任何現成的公式可以告訴你一個數到底是不是素數。你只能試試看能不能將這
個數表示為兩個比它小的數的乘積。
找素數的一種方法是從2開始用「是則留下,不是則去掉」的方法把所有的數列出來(一直列到你不想再往下列為止,比方說,一直列到10,000)。第一個數是2,它是一個素數,所以應當把它留下來,然後繼續往下數,每隔一個數刪去一個數,這樣就能把所有能被2整除、因而不是素數的數都去掉。在留下的最小的數當中,排在2後面的是3,這是第二個素數,因此應該把它留下,然後從它開始往後數,每隔兩個數刪去一個,這樣就能把所有能被3整除的數全都去掉。下一個未去掉的數是5,然後往後每隔4個數刪去一個,以除去所有能被5整除的數。再下一個數是7,往後每隔6個數刪去一個;再下一個數是11,往後每隔10個數刪一個;再下一個是13,往後每隔12個數刪一個。……就這樣依法做下去。
你也許會認為,照這樣刪下去,隨著刪去的數越來越多,最後將會出現這樣的情況;某一個數後面的數會統統被刪去崮此在某一個最大的素數後面,再也不會有素數了。但是實際上,這樣的情況是不會出現的。不管你取的數是多大,百萬也好,萬萬也好,總還會有沒有被刪去的、比它大的素數。
事實上,早在公元前300年,希臘數學家歐幾里得就已證明過,不論你取的數是多大,肯定還會有比它大的素數,假設你取出前6個素數,並把它們乘在一起:2*3*5*7*11*13=30030,然後再加上1,得30031。這個數不能被2、3、5、7、11、13整除,因為除的結果,每次都會餘1。如果30031除了自己以外不能被任何數整除,它就是素數。如果能被其它數整除,那麼30031所分解成的幾個數,一定都大於13。事實上,30031=59*509。
對於前一百個、前一億個或前任意多個素數,都可以這樣做。如果算出了它們的乘積後再加上1,那麼,所得的數或者是一個素數,或者是比所列出的素數還要大的幾個素數的乘積。不論所取的數有多大,總有比它大的素數,因此,素
數的數目是無限的。
隨著數的增大,我們會一次又一次地遇到兩個都是素數的相鄰奇數對,如5,7;11,13;17,19;29,31;41,43;等等。就數學家所能及的數來說,它們總是能找到這樣的素數對。這樣的素數對到底是不是有無限個呢?誰也不知道。數學家認為是無限的,但他們從來沒能證明它。這就是數學家為什麼對素數感興趣的原因。素數為數學家提供了一些看起來很容易、但事實卻非常難以解決的問題,他們目前還沒能對付這個挑戰哩。

迄今為止,人類發現的最大的素數是 224036583-1,這是第 41 個 梅森(Mersenne)素數。

素數也叫質數,是只能被自己和 1 整除的數,例如2、3、5、7、11等。2500 年前,希臘數學家歐幾里德證明了素數是無限的,並提出少量素數可寫成「2 的n次方減 1」的形式,這里 n 也是一個素數。此後許多數學家曾對這種素數進行研究,17 世紀的法國教士馬丁·梅森(Martin Mersenne)是其中成果較為卓著的一位,因此後人將「2的n次方減1」形式的素數稱為梅森素數。

第19~41個梅森素數
序號 素數 位數 發現人 時間
41 224036583-1 7235733 John Findley 2004
40 220996011-1 6320430 Michael Shafer 2003
39 213466917-1 4053946 Michael Cameron 2001
38 26972593-1 2098960 Nayan, Woltman, Kurowski 1999
37 23021377-1 909526 Clarkson, Woltman, Kurowski 1998
36 22976221-1 895932 Spence, Woltman 1997
35 21398269-1 420921 Armengaud, Woltman 1996
34 21257787-1 378632 Slowinski & Gage 1996
33 2859433-1 258716 Slowinski & Gage 1994
32 2756839-1 227832 Slowinski & Gage 1992
31 2216091-1 65050 David Slowinski 1985
30 2132049-1 39751 David Slowinski 1983
29 2110503-1 33265 Welsh & Colquitt 1988
28 286243-1 25962 David Slowinski 1982
27 244497-1 13395 Slowinski & Nelson 1979
26 223209-1 6987 L. Curt Noll 1979
25 221701-1 6533 Nickel & Noll 1978
24 219937-1 6002 Bryant Tuckerman 1971
23 211213-1 3376 Donald B. Gillies 1963
22 29941-1 2993 Donald B. Gillies 1963
21 29689-1 2917 Donald B. Gillies 1963
20 24423-1 1332 Alexander Hurwitz 1961
19 24253-1 1281 Alexander Hurwitz 1961

1995 年,美國程序設計師喬治·沃特曼整理有關梅森素數的資料,編制了一個梅森素數計算程序,並將其放置在網際網路上供數學愛好者使用,這就是「因特 網梅森素數大搜索」計劃。目前有6萬多名志願者、超過20萬台計算機參與這項計劃。該計劃採取分布式計算方式,利用大量普通計算機的閑置時間,獲得相當於 超級計算機的運算能力,第 37、38 和 39 個梅森素數都是用這種方法找到的。美國一家基金會還專門設立了 10 萬美元的獎金,鼓勵第一個找到超過千萬位素數的人。

㈩ 如何用編程尋找質數

以下的程序用來尋找n以內的所有質數:

#include<stdio.h>

int isprime(int n)

{ for(int i=2; i*i<=n; i++)

if(n%i==0)return 0;

return n>1;

}

int main()

{ int n,i,k=0;

scanf("%d",&n);

for(i=2; i<=n; i++)

if(isprime(i))

{ printf("%d ",i);

if(++k%10==0)printf(" ");

}

printf(" ");

return 0;

}

閱讀全文

與編程找出素數相關的資料

熱點內容
注冊伺服器地址指什麼 瀏覽:431
文本命令行 瀏覽:95
撲克牌睡眠解壓 瀏覽:190
rc4演算法流程圖 瀏覽:157
胡蘿卜解壓方法 瀏覽:35
掃描pdf格式軟體 瀏覽:876
程序員在銀行開賬戶 瀏覽:516
android資料庫下載 瀏覽:749
中午伺服器崩潰怎麼辦 瀏覽:425
產品經理和程序員待遇 瀏覽:442
解憂程序員免費閱讀 瀏覽:109
錄像免壓縮 瀏覽:508
總結所學過的簡便演算法 瀏覽:362
南昌哪些地方需要程序員 瀏覽:761
三台伺服器配置IP地址 瀏覽:175
如何用命令方塊連續對話 瀏覽:280
win7linux共享文件夾 瀏覽:304
命令符打開本地服務 瀏覽:601
android應用程序源碼 瀏覽:705
安卓開發工程師簡歷怎麼寫 瀏覽:63