11 判断素数 (10分)

点击获取原题链接
11 判断素数 (10分)

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

输入在第一行给出一个正整数N(≤\le≤ 10),随后N行,每行给出一个小于2312^{31}2​31​​的需要判断的正整数。
输出格式:

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

2
11
111

输出样例:

Yes
No
时间限制:400ms
内存限制:64MB
代码长度限制:16kB
判题程序:系统默认
作者:陈越
单位:浙江大学

/*****提前都是枚举至 N 后来发现sqrt(N)就行 十分节省时间*****/
#include <bits/stdc++.h>
using namespace std;
/************时间复杂度 根号n ******/
const int max=2147483647 ;
bool a[1000000];///素数表
int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        int n;
        cin>>n;
        int flag=0;
        for(int i=2; i<=sqrt(n); i++)
        {
            if(n%i==0)///如果一个数不是素数那么她的倍数全部不是素数
            {
                flag++;
                break;
            }
        }
        if(flag ||  n==1)
        {
            cout<<"No\n";
        }
        else
            cout<<"Yes\n";
    }
    return 0;
}
### 回答1: 可以使用以下代码来判断一个数是否为素数: ```python def is_prime(n): if n < 2: # 小于2的数不是素数 return False for i in range(2, int(n**0.5)+1): if n % i == 0: return False return True ``` 函数`is_prime`接受一个整数`n`作为参数,如果`n`是素数则返回`True`,否则返回`False`。 这里使用了一个优化技巧:判断一个数是否为素数,只需要判断它是否能被比它小的素数整除。而在所有小于一个数的正整数中,最大的可能是它的平方根(假设这个数不是素数,那么它必然可以分解成两个因数,其中一个大于等于它的平方根,另一个小于等于它的平方根)。因此,只需要判断`n`是否能被`2`到`int(n**0.5)`之间的整数整除即可。 ### 回答2: 素数是只能被1和自身整除的大于1的整数。下面是使用Python编写的判断素数的代码: ```python def is_prime(number): # 如果输入的数小于2,直接返回False if number < 2: return False # 在2到number-1的范围内遍历判断能否被整除 for i in range(2, number): if number % i == 0: return False # 如果在循环中没有找到能被整除的数,则返回True return True # 示例测试 print(is_prime(10)) # False print(is_prime(11)) # True print(is_prime(20)) # False ``` 这段代码定义了一个名为is_prime的函数,接受一个整数作为输入,返回一个布尔值,表示是否为素数。函数首先检查输入的数字是否小于2,如果小于2,则直接返回False。然后使用一个循环从2遍历到number-1的范围内,判断是否能被整除。如果找到一个可以整除的数,则返回False,表示不是素数。如果在循环中没有找到能被整除的数,则返回True,表示是素数。 在示例测试中,我们分别传入了10、1120这三个数字并进行了判断。10和20都可以被2整除,因此返回False,表示不是素数。11不能被2整除,也不能被3整除,所以返回True,表示是素数。 ### 回答3: python判断素数可以使用以下的算法: 1. 首先,如果输入的数字小于2,那么它不是素数。因为素数定义为大于1的自然数。 2. 如果输入的数字大于等于2,那么我们需要判断它是否能被2到它本身-1之间的任意数整除。如果能整除,那么它不是素数。如果不能整除,那么它是素数。 下面是一个使用上述算法判断素数的Python代码: ```python def is_prime(num): if num < 2: return False for i in range(2, num): if num % i == 0: return False return True num = int(input("请输入一个正整数:")) if is_prime(num): print(f"{num}是素数") else: print(f"{num}不是素数") ``` 在这个代码中,is_prime()函数用于判断一个数字是否为素数。它首先检查输入的数字是否小于2,如果是,则返回False。然后,使用一个for循环,从2开始到num-1,依次判断num除以这些数字的余数。如果余数为0,表示num能被这些数字整除,所以num不是素数,返回False。如果上述条件都不满足,表示num不能被2到num-1之间的任意数整除,所以num是素数,返回True。 最后,我们从用户那里获取一个正整数,并调用is_prime()函数判断该数字是否为素数。根据返回的结果,输出相应的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值