c语言判断素数不用sqrt的代码
时间: 2023-12-19 10:30:36 浏览: 99
以下是一种不使用sqrt函数的C语言判断素数的代码:
```c
#include <stdio.h>
int main()
{
int n, i, flag = 0;
printf("请输入一个正整数:");
scanf("%d", &n);
for (i = 2; i <= n / 2; ++i)
{
if (n % i == 0)
{
flag = 1;
break;
}
}
if (flag == 0)
printf("%d是素数", n);
else
printf("%d不是素数", n);
return 0;
}
```
相关问题
c语言判断素数的代码
以下是两种C语言判断素数的代码:
1.使用for循环和计数器count判断素数
```c
#include <stdio.h>
int main() {
int i, m;
int count = 0; printf("请输入一个大于1的整数:\n");
scanf("%d", &i);
for (m = 1; m <= i; m++) {
if (i % m == 0)//统计要判断的数的因数个数
count++;
}
if (count == 2)//如果只有2个因数
printf("%d是素数", i);
else
printf("%d不是素数", i);
return 0;
}
```
2.使用for循环和sqrt函数判断素数
```c
#include <stdio.h>
#include <math.h>//求平方根需要引用
int main() {
int n, m, i;//定义需要用到的变量
printf("请输入一个大于1的正整数:");
scanf("%d", &n);//输入要判断的数
m = sqrt(n);//求输入数的平方根
for (i = 2; i <= m; i++)//取2-m之间的每一个整数
if (n % i == 0)//判断能否整除n
break;//非素数,跳出循环
if (i > m)
printf("%d是素数!\n", n);//循环正常结束,是素数
else
printf("%d不是素数!\n", n);//循环中途退出,不是素数
return 0;
}
```
c语言判断素数的函数
C语言判断素数的函数可以使用循环来实现。一般来说,判断一个数n是否为素数,只需要从2到n-1逐个判断n能否被整除即可。但是,这种方法的时间复杂度较高,可以使用更高效的方法。例如,只需要判断2到n/2之间的数能否整除n即可。另外,还可以进一步优化,只需要判断2到sqrt(n)之间的数能否整除n即可。下面是一个判断素数的函数的示例代码:
int isPrime(int n) {
if (n <= 1) {
return 0;
}
int i;
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
该函数首先判断n是否小于等于1,如果是,则返回0,因为1不是素数。然后,使用循环从2到sqrt(n)逐个判断n能否被整除,如果能被整除,则返回0,否则返回1,表示n是素数。
阅读全文