用C语言帮我写一个判断质数的函数,函数名叫zhishu
时间: 2023-06-09 19:02:52 浏览: 89
好的,以下是用C语言编写判断质数的函数zhishu:
```c
#include<stdio.h>
int zhishu(int n){
int i;
for(i=2;i<=n/2;i++)
if(n%i==0)
return 0; //不是质数,返回0
return 1; //是质数,返回1
}
int main(){
int num;
printf("请输入一个整数:");
scanf("%d",&num);
if(zhishu(num)==1)
printf("%d是质数",num);
else
printf("%d不是质数",num);
return 0;
}
```
这是一个简单的判断质数的函数,其实现原理为:从2开始遍历到该整数的一半,如果该整数能被任何一个小于他一半的数整除,则它不是质数,否则就是质数。
相关问题
帮我写一个判断质数的函数,函数名叫zhishu
好的,以下是判断质数的函数代码:
```python
def zhishu(num):
if num < 2: # 小于2的数不是质数
return False
for i in range(2, int(num/2)+1):
if num % i == 0: # 如果有整除的数,则不是质数
return False
return True # 没有整除的数,则是质数
```
使用方法:调用zhishu函数,输入一个整数,函数会返回True或False。如果True,则该数是质数,否则不是质数。
编写一个c语言函数,函数功能为判断一个整数是否为质数。并写出主函数,调用该函数,将10000之内的所有质数输出,每行输出10个数据,并统计一共有多少个质数,将这些质数依次写入一个文件中,文件名为zhishu.dat,文件中格式与输出格式一致
在C语言中,我们可以编写一个函数`is_prime()`来判断一个整数是否为质数,然后在主函数`main()`中遍历1到10000的所有整数,调用这个函数,将符合条件的质数打印出来并计数。同时,我们将这些质数写入一个名为`zhishu.dat`的文件中。
首先,定义`is_prime`函数:
```c
#include <stdio.h>
#include <stdbool.h>
// 判断是否为质数的函数
bool is_prime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
// 主函数
int main() {
FILE* file = fopen("zhishu.dat", "w");
if (file == NULL) {
perror("Failed to open the file");
return 1;
}
int count = 0; // 计数器
int start = 2; // 质数起始位置
while (count < 100 && start <= 10000) { // 输出100个质数
if (is_prime(start)) {
printf("%d ", start); // 打印到控制台
fprintf(file, "%d\n", start); // 写入文件
count++;
}
start++;
}
fclose(file);
printf("\nTotal prime numbers: %d\n", count);
return 0;
}
```
在这个程序中,我们首先尝试打开`zhishu.dat`文件用于写入。然后从2开始检查每个数,如果它是质数就打印到控制台和写入文件,直到找到100个质数或超过10000。最后,关闭文件并显示总共有多少个质数。
阅读全文