[数学知识][质数]试除法判定质数 原创

题目简介

给定n个正整数ai,判定每个数是否是质数。

算法标签

数学知识、质数、试除法

输入格式

第一行包含整数n。

接下来n行,每行包含一个正整数ai。

输出格式

共n行,其中第 i 行输出第 i 个正整数ai是否为质数,是则输出“Yes”,否则输出“No”。

数据范围

1≤n≤100,
1≤ai≤2∗109

输入样例:

2
2
6

输出样例:

Yes
No

思路

质数的定义是 如果一个数字只能被自身和整除就表明是质数。
换言之,我们要判定一个数是质数,只用判断从2到n-1是否能整除n即可,如果能整除,则表明不是

又因为质数的因数都是成对出现,例如 n=12,d=3,
具有n/d=4 n/d|n==0的特性,d和n/d都能被n整除
因此我们枚举因数时只需要枚举较小的那一个,满足 d<=n/d 即可

AC代码

#include<iostream>

using namespace std;

bool is_prime(int n)
{
    if(n<2)return false;
    for(int i=2;i<=n/i;i++)if(n%i==0)return false;
    return true;
}

int main()
{
    int n;
    cin>>n;
    
    while(n--)
    {
        int t;
        cin>>t;
        if(is_prime(t))cout<<"Yes"<<endl;
        else cout<<"No"<<endl;
    }
    return 0;
}
posted @   俺叫西西弗斯  阅读(0)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示