C++求N以內所有的質數
using namespace std;
bool prime(int x)
{
int y;
for(y=2;y<=sqrt(x);y++)
if (x%y==0)
return false;
return true;
}
int main ()
{
int n,i;
cin>>n;
if(n>=2)
cout<<"2 ";
for(i=3;i<=n;i++)
if (prime(i))
cout<<i<<" ";
return 0;
}
//////////// ////////////////// /////////////
相關推薦
C++求N以內所有的質數
#include <cmath> using namespace std; bool prime(int x) { int y; for(y=2;y<=sqrt(x);y++) if (x%y==0) return false;
篩法求N以內所有質數
題目:打印出給定數N以內的所有質數 解答: 使用篩法求N以內的所有質數 注意: 使用bitmap可以減少使用的空間,降低空間複雜度 程式碼: #include <iostream> #include <string.h> using namesp
求n以內的質數(質數的定義:在大於1的自然數中,除了1和它本身意外,無法被其他自然數整除的數)
思路: 1.(質數篩選定理)n不能夠被不大於根號n的任何質數整除,則n是一個質數2.除了2的偶數都不是質數程式碼如下: /** * 求n內的質數 * @param int $n * @return array */ function get_prime($n) { $prime =
C#求100以內的質數
//控制檯程式 static void Main(string[] args) { // 求100以內的質數 for (int i = 2; i <= 100; i++) { // 質數
求10000以內所有質數的和
# -*- coding: utf-8 -*- def zhishu(num=None): if num is None or num == 1 or num < 0: return 0 i = 2 while
groovy使用stream語法遞迴篩選法求N以內的質數(素數)--附氣泡排序和插入排序練習
本人最近讀完一本書《質數的孤獨》,裡面講到孿生質數,就想查一下孿生質數的分佈情況。其中主要用到了計算質數(素數)的方法,搜了一下,
C++ 筆試題簡單練習----求N 以內質數 和 計算多少對質數等於N
1、關於質數的操作 * 素數(質數):只能被1和自身整除的數* 若一個數N為合數,則存在a,b,使得N=a*b,且a,b中至少有一個數小於sqrt(N) ,因為N = 2^( sqrt(N) );判
Java求n以內的所有質數
質數(prime number)又稱素數,有無限個。一個大於1的自然數,除了1和它本身外,不能被其他自然數整除,換句話說就是該數除了1和它本身以外不再有其他的因數;否則稱為合數。 方法1:根據質數的定義求解; 方法2:對方法1作進一步優化,僅需判斷到該數的平方根; 方法3:
求1000以內的質數c語言
之前在做求1000以內的質數的時候,我們一般能想到的就是從3~(根號)no,逐一和no除,如果存在某個i使得 i|no成立的話,說明no不是質數(“i|no”是i整除除no的意思); 在《明解c語言》上看到了一種與相似,但運算次數比其還少的。 #include <stdio.h
python用遞迴篩選法求N以內的孿生質數(孿生素數)--附氣泡排序和插入排序練習
本人最近讀完一本書《質數的孤獨》,裡面講到孿生質數,就想查一下孿生質數的分佈情況。其中主要用到了計算質數(素數)的方法,搜了一下,排名前幾的都是用for迴圈來做的,感覺略微麻煩了一些,在比較一些還是覺得用遞迴篩選法來解決這個問題。 新建List,然後從第0位開始,如果後面的能被這個數整除,則從陣
java用遞迴篩選法求N以內的孿生質數(孿生素數)--附氣泡排序和插入排序練習
本人最近讀完一本書《質數的孤獨》,裡面講到孿生質數,就想查一下孿生質數的分佈情況。其中主要用到了計算質數(素數)的方法,搜了一下,排名前幾的都是用for迴圈來做的,感覺略微麻煩了一些,在比較一些還是覺得用遞迴篩選法來解決這個問題。 新建List<Integer>,然後從第0位開始,如
【C語言】輸入一個整數N,求N以內的素數之和
【C語言】輸入一個整數N,求N以內的素數之和 /* ============================================================================ Name
PTA-求n以內最大的k個素數以及它們的和(C語言)
輸入樣例1: 1000 10 輸出樣例1: 997+991+983+977+971+967+953+947+941+937=9664 輸入樣例2: 12 6 輸出樣例2: 11+7+5+3+2=28 #include <stdio.h> //判斷素數 int prime(i
java用遞迴篩選法求N以內的孿生質數(孿生素數)
本人最近讀完一本書《質數的孤獨》,裡面講到孿生質數,就想查一下孿生質數的分佈情況。其中主要用到了計算質數(素數)的方法,搜了一下,排名前幾的都是用for迴圈來做的,感覺略微麻煩了一些,在比較一些還是覺得用遞迴篩選法來解決這個問題。 新建List<Integer>
問題:求n以內的所有素數。要求給出自然語言描述的演算法,並且實現演算法。事先分析演算法的時間複雜度和空間複雜度。/*如果錯誤或相關改進的歡迎提出,謝謝!*/
/*2018.10.20上傳,該貼還有部分需要完善,比如2輸不出,還有許多可以優化的地方,未完,待更~~*/ #include <stdio.h> #include <math.h> #include <time.h> void pr
C#面試題:求100以內的質數
質數是隻能被1和他本身整除的數。 for (int i = 1; i <= 100; i++) { for (int j = 2; j <=i; j++) {
篩法求小於等於整數n的所有質數
篩法求n以下的質數最核心的是確定其倍數未消去的最大數p應該滿足的條件。要消去q的倍數,最小應該從q*q考察起(因為其他跟小的倍數已經由2p,3p。。。(p-1)*p消去了) 那麼消去q的倍數只需從q*q開始 到n結束(滿足不等式q*q <=n). 以下是測試程式碼: #
求N以內的所有親和數
親和數: 親和數問題最早是由畢達哥拉斯學派發現和研究的。他們在研究數字的規律的時候發現有以下性質特點的兩個數: 220的真因子是:1、2、4、5、10、11、20、22、44、55、110; 284的真因子是:1、2、4、71、142。 而這兩個數恰恰等於對方的真因子各自加
求n以內的所有因子數
在網上搜到的都是些求質因子的,剛好今天遇到一道題,題目思路錯了,就碼了一個求一個數所有因子的模板。 再根據公式n=p1^x1*p2^x2……pm^xm,pi表示質因子數,xi表示其指數,從而可以看出n的所有因子都是可以通過質因子組合而來,並且有n的因子個數等於(x1+1)*
中M2018春C入門和進階練習集-程式設計題51 7-51 求n以內最大的k個素數以及它們的和(20 分)
7-51 求n以內最大的k個素數以及它們的和(20 分) 本題要求計算並輸出不超過n的最大的k個素數以及它們的和。 輸入格式: 輸入在一行中給出n(10≤n≤10000)和k(1≤k≤10)的值。 輸出格式: 在一行中按下列格式輸出: 素數1+素數2+…+素數k=