AcWing 866. 试除法判定质数

简介: AcWing 866. 试除法判定质数
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
bool is_prim(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,m;
  scanf("%d",&n);
  for(int i=1;i<=n;i++){
    scanf("%d",&m);
    if(is_prim(m)) printf("Yes\n");
    else printf("No\n");
  }
    return 0;
}
/*
i<n         O(n)  超时
i*i<=n      O(sqrt(n))  当n趋近于int时i*i有的可能会因溢出变成负数
i<=sqrt(n)  O(sqrt(n))  每次循环会进行sqrt()的运算 用时过长
i<=n/i      O(sqrt(n))  完美
*/
目录
打赏
0
0
0
0
3
分享
相关文章
一个偶数总能表示为两个素数之和
【10月更文挑战第10天】一个偶数总能表示为两个素数之和。
46 2
一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
199 4
|
11月前
40.验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和
40.验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和
109 5
DAY-1 | 迭乘法、辗转相除法、试除法:最大公约数与最小公倍数问题
这段内容是一个关于计算两个数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)的编程题目说明,包括题干、题解和方法总结。其中提到了两种方法:辗转相除法和试除法。辗转相除法通过不断用较大数除以较小数直到余数为零来求最大公约数,然后利用两数乘积除以最大公约数得到最小公倍数。试除法则是通过循环尝试两数的倍数是否同时能被两数整除来求解。在方法总结部分,还介绍了迭乘法求最小公倍数的方法。
135 0
一个偶数总能表示为两个素数之和。
一个偶数总能表示为两个素数之和
50 0
|
11月前
|
试除法判定质数
试除法判定质数
59 0
|
11月前
试除法判定质数:深入探索与代码分析
试除法判定质数:深入探索与代码分析
127 0
试除法求约数
试除法求约数
66 0

热门文章

最新文章