資源限制
時間限制: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;
}