编写一个函数prime,判断一个正整数是否为素数,如果是素数,函数返回1,否则返回0。在主函数中输入一个正整数,调用prime判断它是否为素数并输出。 c语言
时间: 2024-05-15 20:18:25 浏览: 101
好的,以下是C语言代码:
```
#include <stdio.h>
int prime(int n) {
int i;
if (n <= 1) { // 1不是素数
return 0;
}
for (i=2; i*i<=n; i++) { // 只需从2到sqrt(n)枚举,加速运算
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
if (prime(n)) {
printf("%d是素数\n", n);
}
else {
printf("%d不是素数\n", n);
}
return 0;
}
```
注意:在函数prime中,只需从2到sqrt(n)枚举,就可以判断n是否为素数(除了1和n本身以外,不存在整数可以被n整除)。这样做可以加速运算,减少时间复杂度。
相关问题
编写一个函数prime,判断一个正整数是否是素数,如果是素数,函数返回1,否则返回0
以下是Python语言的函数实现:
```python
def prime(n):
if n < 2:
return 0
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return 0
return 1
```
函数接受一个正整数n作为参数,判断n是否是素数。如果n小于2,直接返回0,因为小于2的整数都不是素数。然后从2开始循环到n的平方根(取整数部分),如果n能被其中任意一个整数整除,说明n不是素数,返回0。否则循环结束,说明n是素数,返回1。
编写一个函数prime,判断一个正整数是否为素数,如果是素数,函数返回1,否则返回0。在主函数中输入一个正整数,调用prime判断它是否为素数并输出。
以下是实现该功能的代码:
```python
def prime(num):
if num < 2:
return 0
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return 0
return 1
num = int(input("请输入一个正整数:"))
if prime(num):
print(num, "是素数")
else:
print(num, "不是素数")
```
首先定义了一个函数prime,它接受一个正整数作为参数。如果这个数小于 2,那么它不是素数,直接返回 0;否则使用一个循环从 2 开始枚举到这个数的平方根,并判断是否能被整除,如果能被整除,那么它不是素数,返回 0;如果循环结束后都没有返回,那么这个数是素数,返回 1。
在主函数中,先输入一个正整数,然后调用prime函数判断它是否为素数,并输出对应的提示信息。