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))  完美
*/
相关文章
|
20天前
|
机器学习/深度学习
一个偶数总能表示为两个素数之和
【10月更文挑战第10天】一个偶数总能表示为两个素数之和。
12 2
|
6月前
|
人工智能 算法
DAY-1 | 迭乘法、辗转相除法、试除法:最大公约数与最小公倍数问题
这段内容是一个关于计算两个数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)的编程题目说明,包括题干、题解和方法总结。其中提到了两种方法:辗转相除法和试除法。辗转相除法通过不断用较大数除以较小数直到余数为零来求最大公约数,然后利用两数乘积除以最大公约数得到最小公倍数。试除法则是通过循环尝试两数的倍数是否同时能被两数整除来求解。在方法总结部分,还介绍了迭乘法求最小公倍数的方法。
70 0
|
算法 C语言
【C语言】判断一个数是否为素数(素数求解的N种境界)(下)
【C语言】判断一个数是否为素数(素数求解的N种境界)(下)
117 0
|
6月前
|
机器学习/深度学习
一个偶数总能表示为两个素数之和。
一个偶数总能表示为两个素数之和
33 0
|
6月前
|
人工智能
试除法判定质数
试除法判定质数
39 0
|
6月前
试除法判定质数:深入探索与代码分析
试除法判定质数:深入探索与代码分析
86 0
|
6月前
|
人工智能 Java C++
试除法求约数
试除法求约数
48 0
|
算法 搜索推荐 程序员
C语言第十三练——输入一个正整数,判断这个数是否是素数
C语言第十三练——输入一个正整数,判断这个数是否是素数
121 0
【每周一坑】​正整数分解质因数 +【解答】计算100以内质数之和
关于分解质因数:每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,把一个合数用质因数相乘的形式表示出来,叫做分解质因数。分解质因数只针对合数。