竞赛
考级
#include <iostream> using namespace std; int main(){ int n,p,sm=0; cin >> n >> p; if (n*p>1e9){ cout<<0<<endl; return 0; } for (int i=0;i<n;++i){ sm+=p; if (sm>1e9){ cout<<0<<endl; return 0; } for (int j=2;j<p;++j){ if (sm%j==0){ --i; break; } } } cout<<sm<<endl; return 0; } 答案
翻译。 题解部分 思路: 算法1 暴力枚举。 对于每个 iii 找到其最小质因子 PPP,时间复杂度O(nn)O(n \sqrt{n})O(nn )。 算法2 线性筛。 筛出 [1,109][1,10^{9}][1,109] 的所有素数,对于每个 iii,找到其最小质因子为 PPP 切其相对序列值属于前一部分得到的素数表前 NNN 个数。 时间复杂度 O(nlogn)O(n \log n)O(nlogn),可以通过此题。 代码 数据较水,直接暴力可以过
提交答案之后,这里将显示提交结果~