用C语言编写一个函数isprime,判断整数N是否为素数
时间: 2023-09-17 17:14:57 浏览: 214
以下是用C语言编写的判断整数N是否为素数的函数isprime:
```c
#include <stdio.h>
#include <math.h>
int isprime(int N){
int i;
if(N < 2) return 0; //小于2的数不是素数
for(i = 2; i <= sqrt(N); i++){ //从2到sqrt(N)枚举
if(N % i == 0) return 0; //如果能整除,不是素数
}
return 1; //否则是素数
}
int main(){
int n;
printf("请输入一个整数n:");
scanf("%d", &n);
if(isprime(n)) printf("%d是素数\n", n);
else printf("%d不是素数\n", n);
return 0;
}
```
函数isprime的思路是从2到sqrt(N)枚举每个可能的因子i,如果N能被i整除,则N不是素数;否则N是素数。如果N小于2,则不是素数。函数返回1表示N是素数,返回0表示N不是素数。
在主函数中,先输入一个整数n,然后调用isprime函数判断n是否为素数,最后输出结果。
相关问题
用c语言编写一个函数isprime(n).判断整数n是否为素数.编写程序使用此函数,当输入一个整数时,对它进行判断,当为素数时,输出1.否则,输出0. 【输入形式】控制台输入一个整数. 【输出形式】控制台输出判断结果0或者1. 【样例输入】45 【样例输出】0 【样例说明】45非素数,故输出为0
以下是用C语言编写的isprime函数及主程序:
```c
#include <stdio.h>
int isprime(int n) {
if (n <= 1) { // 小于等于1的数不是素数
return 0;
}
for (int i = 2; i * i <= n; i++) { // 从2到sqrt(n)遍历
if (n % i == 0) { // 如果n能被i整除,则n不是素数
return 0;
}
}
return 1; // n是素数
}
int main() {
int n;
scanf("%d", &n); // 输入一个整数
printf("%d\n", isprime(n)); // 判断是否为素数并输出结果
return 0;
}
```
其中,isprime函数的实现原理是判断n是否能被2到sqrt(n)中的任何一个数整除,如果能,则n不是素数,返回0;否则,n是素数,返回1。主程序中,首先输入一个整数n,然后调用isprime函数对其进行判断,并输出结果。
c语言中编写一个函数isPrime,该函数用于判断整数x是否为素数,若x是素数则返回1,否则返 回0;然后再编写一个函数Reverse,该函数返回整数x反序数(即将各位数字的顺序倒过 来)。输入两个正
整数x和y,并输出x到y之间的所有素数以及它们的反序数。
以下是C语言的代码实现:
```c
#include <stdio.h>
// 判断素数函数
int isPrime(int x) {
if (x <= 1) {
return 0;
}
for (int i = 2; i * i <= x; i++) {
if (x % i == 0) {
return 0;
}
}
return 1;
}
// 求反序数函数
int Reverse(int x) {
int r = 0;
while (x > 0) {
r = r * 10 + x % 10;
x /= 10;
}
return r;
}
int main() {
int x, y;
printf("请输入两个正整数x和y:");
scanf("%d %d", &x, &y);
printf("%d到%d之间的素数及其反序数为:\n", x, y);
for (int i = x; i <= y; i++) {
if (isPrime(i) && isPrime(Reverse(i))) {
printf("%d %d\n", i, Reverse(i));
}
}
return 0;
}
```
例如,当输入x=10,y=100时,程序输出:
```
10到100之间的素数及其反序数为:
11 11
13 31
17 71
31 13
37 73
71 17
73 37
79 97
97 79
```
阅读全文
相关推荐













