用c语言编写【问题描述】 输入一个正整数,判断该数是否为素数,并输出是否为素数的信息。判别素数功能用函数实现,函数原型:int prime(int n),是素数返回 1,不是素数返回 0。提示:注意函数的定义与调用方法,及调用时的参数传递。 【样例输入1】(下划线部分为输入内容) 17 【样例输出1】 17 is a prime number. 【样例输入2】(下划线部分为输入内容) 15 【样例输出2】 15 is not a prime number.
时间: 2024-02-21 21:59:20 浏览: 79
c语言:实现一个函数,判断一个数是不是素数
5星 · 资源好评率100%
以下是用 C 语言编写的程序,实现判断一个数是否为素数的功能:
```c
#include <stdio.h>
int prime(int n);
int main()
{
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
if (prime(num))
printf("%d is a prime number.\n", num);
else
printf("%d is not a prime number.\n", num);
return 0;
}
int prime(int n)
{
int i;
if (n <= 1)
return 0; //小于等于1的数不是素数
for (i = 2; i * i <= n; i++) //枚举2到sqrt(n)之间的所有数
if (n % i == 0)
return 0; //n能被i整除,说明n不是素数
return 1; //n不能被2到sqrt(n)之间的数整除,说明n是素数
}
```
程序中定义了一个 `prime` 函数,用来判断一个数是否为素数。`prime` 函数接收一个整数作为参数,如果这个数是素数,函数返回1,否则返回0。
在主函数中,先读入一个正整数,然后调用 `prime` 函数判断该数是否为素数。如果是素数,输出提示信息 `x is a prime number.`,否则输出 `x is not a prime number.`。
需要注意的是,当输入的数小于等于1时,程序直接输出该数不是素数,因为小于等于1的数没有素数定义。同时,在 `prime` 函数中,枚举的范围是2到sqrt(n)之间的所有数,因为大于sqrt(n)的数肯定会和小于sqrt(n)的数中的某一个数成为倍数关系,所以不需要再枚举了。
阅读全文