判断素数c语言pta
时间: 2023-11-10 13:07:24 浏览: 186
判断素数是一个常见的算法问题,也是C语言PTA中的一道经典题目。判断素数的方法有很多种,比如试除法、埃氏筛法、欧拉筛法等等。其中,试除法是最简单的一种方法,即对于一个数n,从2到sqrt(n)依次判断是否能整除n,如果能整除,则n不是素数,否则n是素数。
下面是一个使用试除法判断素数的C语言代码:
```
#include <stdio.h>
#include <math.h>
int is_prime(int n) {
if (n < 2) {
return 0;
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int m, n;
scanf("%d%d", &m, &n);
for (int i = m; i <= n; i++) {
if (is_prime(i)) {
printf("%d ", i);
}
}
return 0;
}
```
该代码首先定义了一个判断素数的函数is_prime,然后在主函数中输入两个整数m和n,使用for循环遍历m到n之间的所有整数,对于每个整数i,调用is_prime函数判断是否为素数,如果是素数则输出。
相关问题
PTA判断素数c语言
在C语言中,编写一个用于判断一个数是否为素数(也称质数)的程序,可以通过循环和除数检查的方式来实现。这里是一个简单的过程:
```c
#include <stdbool.h> // 引入bool类型
// 定义一个函数is_prime,接受一个整数参数n并返回bool值
bool is_prime(int n) {
// 素数定义排除1和0
if (n <= 1) {
return false;
}
// 循环从2到sqrt(n),因为大于√n的因子会有一个小于等于它的平方根的对应因子
for (int i = 2; i * i <= n; i++) {
// 如果n能被i整除,说明n不是素数,返回false
if (n % i == 0) {
return false;
}
}
// 若没有找到因子,则n是素数,返回true
return true;
}
// 示例用法
int main() {
int num;
printf("请输入一个数字:");
scanf("%d", &num);
if (is_prime(num)) {
printf("%d是素数\n", num);
} else {
printf("%d不是素数\n", num);
}
return 0;
}
```
这个程序首先检查输入的数是否小于或等于1,如果是则直接返回非素数。然后从2开始循环到该数的平方根,如果发现有任何一个数能整除输入的数,就表示这不是素数。如果没有找到这样的因子,则认为它是素数。
pta判断素数c语言
这是一道PTA上的题目,要求判断输入的正整数是否为素数。可以使用C语言编写程序来解决这个问题。以下是一个示例代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int k;
scanf("%d", &k);
while (k--) {
int i, n, f = 1;
scanf("%d", &n);
if (n == 1)
printf("No\n");
else {
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0)
f = 0;
}
if (f == 1)
printf("Yes\n");
else
printf("No\n");
}
}
return 0;
}
```
该程序使用了循环和条件语句来判断输入的正整数是否为素数。具体来说,程序首先读入需要判断的正整数的个数k,然后使用while循环对每个正整数进行判断。对于每个正整数n,程序使用for循环从2到sqrt(n)遍历所有可能的因子,如果n能被其中任意一个因子整除,则说明n不是素数,将f标记为0。最后根据f的值输出Yes或No。
阅读全文