2 条题解
-
1
本人是出题者。
请不要直接抄代码,这样对你我都不好
我们按照模拟算法即可。
#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; } -
0
- #include
- using namespace std;
- int m,r,s,k,al[54321],ii=1,z=1;
- bool zhishu(int x){
- if(x<2) return 0;
- for(int i=2;i<x;i++)
-
if(x%i<=0&&x%i>=0) return 0; - return 1;
- }
- int main(){
- cin>>m>>r>>s>>k;
- for(int i=1;i<=s;i+=z){
-
if(i%m==r&&zhishu(i)){ -
z=m; -
al[ii++]=i; -
-
}
-
- }
- cout<<((al[k]!=0)?al[k]:-1);
- return 0;
- }
- 1
信息
- ID
- 105
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 3
- 已通过
- 3
- 上传者