在主函数中输入10个[3,9999]之间的素数存放到数组中,要求通过调用函数prime对输入的数进行正确性限制,如果不符合要求,则返回0,否则返回1,保证输入10个[3,9999]之间的素数——(输入的符合要求的素数未到十个时要求重新输入)用c语言给出完整代码,不要解释
时间: 2023-02-05 17:54:53 浏览: 25
以下是用 C 语言给出的代码:
#include <stdio.h>
// 判断一个数是否为素数
int is_prime(int n)
{
if (n < 2) return 0; // 素数必须大于等于 2
for (int i = 2; i * i <= n; i++)
{
if (n % i == 0) return 0; // 若能被整除,则不是素数
}
return 1; // 能跑到这里,就是素数
}
// 判断输入的数是否在 [3, 9999] 之间且为素数
int prime(int n)
{
if (n < 3 || n > 9999) return 0; // 不在区间内
return is_prime(n); // 在区间内就判断是否为素数
}
int main()
{
int nums[10]; // 存放输入的素数的数组
int count = 0; // 已经输入了多少个素数
// 不断输入素数,直到输入了 10 个
while (count < 10)
{
printf("请输入一个 [3, 9999] 之间的素数:");
int n;
scanf("%d", &n); // 读入一个数
if (prime(n)) // 判断是否符合要求
{
nums[count++] = n; // 符合要求就加入数组
}
else
{
printf("输入不符合要求,请重新输入。\n"); // 不符合要求就要求重新输入
}
}
// 输入完毕,输出数组中的所有元素
printf("输入的素数为:");
for (int i = 0; i < 10; i++)
{
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
阅读全文