1013 數素數 (20分)/c++實現
令 Pi 表示第 i 個素數。現任給兩個正整數 M≤N≤104,請輸出 PM 到 PN 的所有素數。
輸入格式:
輸入在一行中給出 M 和 N,其間以空格分隔。
輸出格式:
輸出從 PM 到 PN 的所有素數,每 10 個數字佔 1 行,其間以空格分隔,但行末不得有多餘空格。
輸入樣例:
5 27
輸出樣例:
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103
思路:
1、建立一個大小為max動態陣列來接受素數,因為第10000個素數是104729,在遍歷尋找判斷素數需要大於104729。
2、是用容器來寫,思路同上,容器的方法我覺得更加精簡。
動態陣列程式碼:
#include<iostream>
#include<cmath>
using namespace std;
bool isprime(int a)
{
bool flag = true;
for (int j = 2; j <=sqrt(a); j++)
{
if (a % j == 0) //判斷a不是素數
{
flag = false;
break;
}
}
return flag;
}
int main()
{
int min, max, count = 1, count1 = 1,count2=1;
cin >> min >> max;
int* pd = new int[max];
pd[0] = 1;
for (int i = 2; i <=105000; i++)
{
if (isprime(i))
{
if (count<=max)
{
pd[count] = i;
count++;
}
}
}
for (int i =min; i <=max; i++)
{
cout << pd[i];
if (count1 % 10 != 0 && count2<(max-min+1))
{
cout << " ";
}
else
cout << endl;
count1++;
count2++;
}
delete []pd;
return 0;
}
容器程式碼:
#include<iostream>
#include<cmath>
#include<vector>
using namespace std;
bool isPrime(int a)//判斷是否為素數
{
bool flag = 1;
for (int i = 2; i <= sqrt(a); i++){
if (a % i == 0){
flag = 0;
return flag;
}
}
return flag;
}
int main()
{
int min, max;
cin >> min >> max;
vector<int>v;
for (int i = 1; i < 105000; i++){//第10000個素數是104729
if(isPrime(i))
v.push_back(i);//如果是素數,就插入到容器中
if (v.size() == max+1)//如果達到了題目要求的最大素數數目+1(因為1不是素數,所以會佔一個位置為v[0])停止迴圈
break;
}
for (int i = min; i < v.size(); i++){
cout << v[i];
if ((i - min+1) % 10 != 0 && i != max)//每整除10換行,不到10輸出空格,i!=max保證輸出最後一個數後面沒有空格
cout << " ";
else
cout << endl;
}
return 0;
}
相關文章
- PAT1013數素數C++C++
- Prime Palindromes( 素數迴文) C++實現C++
- 素數迴文——輸出兩整數之間所有既是迴文數又是素數的數 C++實現C++
- Python演算法實現質數(素數)判斷Python演算法
- c++實現求眾數及其重數C++
- 簡單的素數問題(C++)C++
- L1-028 判斷素數 分數 10
- 邱奇數的C++實現C++
- ACM 素數ACM
- 任意進位制下的可逆素數 C++C++
- 素數計數函式函式
- 【數論】素數篩法
- PAT 乙級 1094 谷歌的招聘 (20分)---【素數 字串】谷歌字串
- C++ :引用計數(reference count) 實現C++
- L1-056 猜數字 (20分) C++C++
- Python:第6章-2 使用函式求素數和 (20分)Python函式
- DataTables自定義分頁條數實現
- C語言實驗——素數 (sdut oj)C語言
- 求素數(質數)演算法演算法
- C++ 大整數類(BigInteger類)實現C++
- 樸素貝葉斯實現文件分類
- 計算素數【Java】Java
- Find Terrorists(素數篩選+素因子分解)Error
- 一個分數類的實現——Rational類
- 初等數論——素數,逆元,EXGCD有關GC
- C++反射機制:可變引數模板實現C++反射C++反射
- LeetCode題庫13. 羅馬數字轉整數(c++實現)LeetCodeC++
- C++ std::list實現大整數加法運算C++
- java實現有理數分數相關計算(淺度拷貝)案例Java
- C++反射機制:可變引數模板實現C++反射薦C++反射
- C++反射機制:可變引數模板實現C++反射(二)C++反射
- 表示素數的函式函式
- 如何高效尋找素數
- 密碼工程-大素數密碼
- (實戰)樸素貝葉斯實現垃圾分類_201121
- PbootCMS實現數字條分頁樣式效果boot
- 素數之年,IT運維其實可以很簡單運維
- C++實現以秒為單位的計數器C++