这可能是一个非常简单的问题,但出于某种原因,我就是想不出正确的解决方案!
我们有一个函数 int isPrime(int n) 如果 n 是素数则返回 2,如果 n 不是正数则返回 -1,如果 n 不是素数则返回 0。 (我们不必为这个函数写任何代码,我们只是假设代码已经写好了,所以我们所要做的就是调用这个函数)。使用此函数,我们必须编写一个代码片段,用前十个素数填充大小为 10 的整数数组。注意:将 1 视为非质数。
我尝试了以下解决方案,但我认为它不对:注意:我们只需要编写一个代码片段!
int a[10];
int n, i, result;
result = isPrime(n);
for (i = 0; i < 10; i++) {
if (result == 1) {
a[i] = n;
}
}
我有一种感觉,我将不得不使用两个 for 循环,一个循环遍历使用 isPrime 检查的数字,另一个循环遍历数组中的位置,就像我在上面所做的那样。但是我不确定如果我有两个 for 循环会是什么样子。任何帮助表示赞赏!提前致谢。
尝试这样的事情。它会反复寻找下一个素数,直到找到 10 个素数。注意:由于您没有提供 isPrime
的实现,因此未测试此代码。它只是为了让您了解它应该是什么样子。
int a[10];
int n, i, result;
n = 2;
for (i = 0; i < 10; i++) {
// Keep bumping n until we find a prime.
while (!(isPrime(n) == 2)) {
n++;
}
// Record the prime we just found.
a[i] = n;
// Ensure that we do not just record the same prime n times.
n++;
}
我是一名优秀的程序员,十分优秀!