用C语言编写一个程序,编写一个函数prime,判断一个正整数是否为素数
时间: 2024-04-30 12:19:16 浏览: 14
下面是用C语言编写的判断正整数是否为素数的函数prime:
```c
#include <stdio.h>
int prime(int n){
int i;
for(i=2;i<=n/2;i++){
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的作用是判断传入的正整数n是否为素数,如果是素数,则返回1,否则返回0。在函数中,我们从2开始遍历到n/2,判断n是否能被2到n/2中的任何一个数整除,如果能,则说明n不是素数,返回0;如果遍历完成后没有发现n可被整除的数,则说明n是素数,返回1。
在主函数中,我们首先输入一个正整数n,然后调用prime函数判断n是否为素数,根据prime函数的返回值输出相应的提示信息。
相关问题
编写判断一个正整数是否为素数的函数C语言实现
以下是判断一个正整数是否为素数的函数C语言实现:
```c
#include <stdio.h>
int is_prime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
if (is_prime(n)) {
printf("%d是素数", n);
} else {
printf("%d不是素数", n);
}
return 0;
}
```
该函数采用了试除法的思想,从2开始向上试除,如果能整除,则不是素数,返回0;否则一直试除到sqrt(n),如果都不能整除,则是素数,返回1。在主函数中,先读入一个正整数,然后调用is_prime函数进行判断。
c语言编写一个main函数,输入一个正整数n并判断其是否为素数
下面是一个示例的 `main` 函数,可以输入一个正整数 `n`,并判断它是否为素数:
```
#include <stdio.h>
#include <stdbool.h>
int main(void) {
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
// 如果 n 为 2 或 3,则直接输出是素数
if (n == 2 || n == 3) {
printf("%d 是素数\n", n);
return 0;
}
// 如果 n 为 1 或小于 1,则直接输出不是素数
if (n <= 1) {
printf("%d 不是素数\n", n);
return 0;
}
// 如果 n 为偶数,则直接输出不是素数
if (n % 2 == 0) {
printf("%d 不是素数\n", n);
return 0;
}
// 尝试用 3 到 sqrt(n) 之间的奇数来除 n
// 如果能够被整除,则 n 不是素数
bool is_prime = true;
for (int i = 3; i * i <= n; i += 2) {
if (n % i == 0) {
is_prime = false;
break;
}
}
if (is_prime) {
printf("%d 是素数\n", n);
} else {
printf("%d 不是素数\n", n);
}
return 0;
}
```
注意:这仅仅是一个简单的示例,并不能保证效率最优。