藍橋杯 質數2 C++算法提高 HERODING的藍橋杯之路

資源限制
時間限制:1.0s 內存限制:256.0MB
問題描述
  給定一個正整數N,請你輸出N以內(不包含N)的質數以及質數的個數。
輸入格式
  輸入一行,包含一個正整數N。
輸出格式
  共兩行。
  第1行包含一個整數,表示N以內質數的個數。
  第2行包含若干個素數,每兩個素數之間用一個空格隔開,素數從小到大輸出。
樣例輸入
10
樣例輸出
4
2 3 5 7
數據規模和約定
  N<=1000

解題思路:
這題與質數那題基本上一模一樣,區別在於輸出的順序,那麼我們之前找到一個就輸出的方法便不可取了,必須是先把找到的值存儲到一個數組中,然後在最後輸出,代碼如下:

#include<bits/stdc++.h>

using namespace std;

int N;

int a[1000]; 

bool judge(int n){
	for (int i = 2; i <= sqrt(n * 1.0); i ++){
		if (n % i == 0){
			return false;
		}
	}
	return true;
}

int main(){
	cin >> N;
	int count = 0;
	for(int i = 2; i < N; i ++){
		if(judge(i) == true){
			a[count ++] = i;
		}
	}
	cout << count << endl;
	for (int j = 0; j < count; j ++){
		cout << a[j] << " ";
	}
	return 0;
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章