【題解】ZeroJudge b552: 3.找質數

【題目敘述】https://zerojudge.tw/ShowProblem?problemid=b552

#include <iostream>
#include <vector>
#include <string>
#include <cmath>
using namespace std;

string s;
long long n;
vector <long long> v;

int main() {
    while (cin >> s){
        int pre = 0;
        v.clear();
        for (int i = 0; i < s.length(); i++){
            n = stol(s.substr(pre, i-pre+1));
            if (n <= 1) continue;
            bool flag = true;
            for (int j = 2; j <= sqrt(n); j++){
                if (n % j == 0){
                    flag = false;
                    break;
                }
            }
            if (flag){
                v.push_back(n);
                pre = i+1;
            }
        }
        cout << v.size() << "\n";
        for (auto i:v){
            cout << i << "\n";
        }
        cout << "\n";
    }
}
分享本文 Share with friends