PTA L1-028 判断素数

判断素数

前言:今天你学编程了吗?

在这里插入图片描述

题目详情:
本题的目标很简单,就是判断一个给定的正整数是否素数。

输入格式:
输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于231
的需要判断的正整数。

输出格式:
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No
输入样例1:

2
11
111

输出样例1:

Yes
No

代码如下:

#include <stdio.h>
#include <math.h>
int main()
{
    int n;
    scanf("%d", &n);
    int num;
    int flag;
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &num);
          flag=1;//记得重置flag的值
        if(num==1) flag=0;
        else
        {
            for (int j = 2; j <= sqrt(num); j++)
            {
                if (num % j == 0)
                 {
                flag = 0;
                break;
                  }
            }
            
        }
        
        if (flag == 0)printf("No\n");
        else printf("Yes\n");
    }
    return 0;
}

总结

特别注意在循环中,用 flag 来标记 是否为素数,不是素数标记 0 ,记得将flag的值重新设为1。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 素数是指只能被1和自身整除的正整数判断一个给定正整数是否素数,可以使用以下方法: 1. 首先判断这个数是否大于1,因为1不是素数。 2. 然后从2开始,一直到这个数的平方根,判断这个数是否能被这些数整除。 3. 如果能被整除,那么这个数就不是素数,否则就是素数。 下面是一个Python实现的例子: ```python def is_prime(n): if n <= 1: return False for i in range(2, int(n ** .5) + 1): if n % i == : return False return True ``` 这个函数接受一个正整数n作为参数,返回一个布尔值,表示n是否素数。首先判断n是否小于等于1,如果是,直接返回False。然后从2开始循环到n的平方根,判断n是否能被这些数整除。如果能被整除,返回False,否则返回True。 ### 回答2: 素数也称质数,是指除了自身和1之外没有其他因数的数。判断一个给定正整数是否素数,可以使用以下方法: 1. 遍历除了1和该数本身的所有正整数,看是否能被整除。如果存在能被整除的数,则该数不是素数,否则为素数。 2. 观察一个正整数n是否素数,只需要判断n能否被2到根号n之间的所有正整数整除。 3. 更简单的方法是,判断该数是否能被2到该数本身的平方根之间的所有正整数整除。 4. 在Python语言中,可以使用以下代码实现判断一个给定正整数是否素数的功能: ``` import math def is_prime(number): if number <= 1: return False elif number == 2: return True elif number % 2 == 0: return False else: for i in range(3, int(math.sqrt(number))+1, 2): if number % i == 0: return False return True ``` 上述代码中,首先判断给定正整数是否小于等于1,如果是则不是素数。然后判断是否等于2,如果是则是素数。如果不满足前两个条件,再分判断该数是否为偶数,如果是则不是素数。最后遍历从3到该数的平方根之间的所有奇数,看是否能被整除,如果存在能被整除的数则不是素数,否则为素数。最终返回True或False,表示该数是否素数。 ### 回答3: 素数是指只能被1和自身整除的正整数,例如2、3、5、7、11等。 Python中判断一个给定正整数是否素数,可以参考如下代码: ```python def is_prime(num): if num < 2: # 小于2的数不是素数 return False for i in range(2, int(num**0.5) + 1): # 判断从2到sqrt(num)是否有因数 if num % i == 0: return False return True ``` 代码中首先判断了小于2的数不是素数,然后利用for循环遍历2到num的平方根范围内的数字,判断是否有因数能够整除该数,如果有则不是素数,返回False;如果没有则是素数,返回True。其中int(num**0.5) + 1是为了遍历到数字num的平方根范围内的数字,因为在平方根后面的数字和平方根前面的数字一定是成对出现的,所以只需要遍历到平方根即可。 接下来可以通过调用这个函数来判断一个正整数是否素数,例如: ```python num = 13 if is_prime(num): print(f"{num}是素数") else: print(f"{num}不是素数") ``` 以上代码会输出 "13是素数",因为13只能被1和13整除,符合素数的定义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值