1 条题解
-
2
本人是出题者。
请不要直接抄代码,这样对你我都不好
我们按照模拟算法即可。
#include <bits/stdc++.h> using namespace std; typedef long long llint; bool is_prime(int x) { if(x == 0 || x == 1) { return false; } for(llint i = 2;i * i <= x;i++) { if(x % i == 0) { return false; } } return true; } llint m, r, s, k; llint cnt, cnt1; int main(void) { cin >> m >> r >> s >> k; llint arr[s + 10], arr1[s + 10]; memset(arr, 0, sizeof(arr)); memset(arr1, 0, sizeof(arr1)); for(llint i = 1;i <= s;i++) { if(is_prime(i) == true) { arr[++cnt] = i; } } for(llint i = 0;i <= cnt;i++) { if(arr[i] % m == r) { arr1[cnt1] = arr[i]; cnt1++; } } if(arr1[k - 1] == 0) { cout << -1 << endl; } else { cout << arr1[k - 1] << endl; } return 0; }
- 1
信息
- ID
- 105
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 2
- 已通过
- 2
- 上传者