Prime Path素数筛与BFS动态规划
埃拉托斯特尼筛法(sieve of Eratosthenes ) 是古希腊数学家埃拉托斯特尼发明的计算素数的方法。对于求解不大于 n 的所有素数,我们先找出 sqrt(n) 内的 所有素数p1到pk ,其中 k = sqrt(n) ,依次剔除 Pi 的倍数,剩下的所有数都是素数。 具体操作如上述 图片所示。 C++实现 #include<iostream> #include<vector> using namespace std; int main() { int n; cin >> n; vector<bool> isprime(n + 5, true); vector<int> ans; for (int i = 2; i <= n; i++) { if (isprime[i]) { ans.push_back(i); for (int j = i * i; j <= n; j += i)isprime[j] = false; } } for (auto i : ans)cout << i << " "; cout << endl; return 0; } 整除问题 给定n,a求最大的k,使n!可以被a k整除但不能被a (k+1)整除。 输入描述 两个整数n(2<=n<=1000),a(2<=a<=1000) 输出描述 示例1 输入 555 12 输出 274