假设我们有一个数字 N。我们必须在 1 到 N 的范围内找到近似素数。当一个数恰好有两个不同的因子时,它被称为近似素数。这些数可以有任意数量的非素数因子,但必须有两个素数因子。因此,如果 N 是 2,则输出将是 2。有两个数 6 和 10。在这里,我们将使用埃拉托斯特尼筛法。请检查以下实现以更好地了解。示例 实时演示#include #define N 100005 using namespace std; bool prime[N]; void SieveOfEratosthenes() { for(int i = 0; i
假设我们有两个字符串 A 和 B。A 和 B 的长度相同。在一次位移中,我们可以将字符串 B 旋转一个元素。我们必须找到获得 A 和 B 的最大长度公共前缀所需的最小位移。因此,如果 A = “computerprogramming”,而 B = “programminglanguage”,则最小位移是 8,前缀是“programming”。假设我们在 B 的末尾添加字符串 B,则 B = B + B,然后无需分别查找每个位移的前缀。因此,我们必须找到最长的前缀……阅读更多
假设我们有一个包含 n 个数字的数组。我们必须找到数组中至少有两个更大元素的所有元素。如果数组类似于 A = [2, 8, 7, 1, 5],则结果将是 [2, 1, 5]。要解决这个问题,我们将找到第二大元素,然后打印所有小于或等于第二大元素的元素。示例#include using namespace std; void searchElements(int arr[], int n) { int first_max = INT_MIN, second_max = INT_MIN; for (int i = 0; i < n; i++) { if (arr[i] > first_max) ... 阅读更多