40分求助RE6个
查看原帖
40分求助RE6个
1346192
bianchengmo楼主2024/10/2 12:35

错误链接

代码:

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <chrono>
using namespace std;
typedef unsigned long long ULL;
static bool isPSN(long long num) {
    for (long long i = 0; i < num; i++) {
        for (long long j = 0; j < num; j++) {
            if (i * j == num) return true;
        }
    }
    return false;
}
static bool isPrimeNumber(long long num) {
    if (num <= 1) return false;
    if (num == 2) return true;
    if (num % 2 == 0) return false;
    for (int i = 3; i <= sqrt(num); i += 2) {
        if (num % i == 0) return false;
    }
    return true;
}
static bool SOTDisPN(long long num) {
    string strNum = to_string(num);
    int sum = 0;
    for (int i = 0; i < strNum.size(); i++) {
        sum += stoi(to_string(strNum[i]));
    }
    return isPrimeNumber(sum);
}
static void solve() {
    unsigned long long l, r, ans = 0;
    cin >> l >> r;
    vector<int>goodnums(r - l);
    for (int i = l; i < r; i++) {
        if (isPSN(i) and SOTDisPN(i)) goodnums.push_back(i);
    }
    if (goodnums.size() != 0) {
        ans = goodnums[0];
        for (int i = 1; i < goodnums.size(); i++) {
            ans *= goodnums[i];
        }
    }
    cout << ans % 998244353 << "\n";
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    solve();
    return 0;
}
2024/10/2 12:35
加载中...