zoukankan      html  css  js  c++  java
  • [51nod1106]质数检测

    解题关键:

    根据质数的定义,在判断一个数n是否是质数时,我们只要用1至n-1去除n,看看能否整除即可。但我们有更好的办法。先找一个数m,使m的平方大于n,再用<=m的质数去除n(n即为被除数),如果都不能整除,则n必然是质数。如我们要判断1993是不是质数,50*50>1993,那么我们只要用1993除以<50的质数看是否能整除,若不能即为质数.

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 int n,t;
     5 int is_prime[100005],prime[100005];
     6 int sieve(int n){
     7     int p=0;
     8     fill(is_prime,is_prime+n+1,1);
     9     is_prime[0]=is_prime[1]=0;
    10     for(int i=2;i<=n;i++){
    11         if(is_prime[i]){
    12             prime[p++]=i;
    13             for(int j=2*i;j<=n;j+=i) is_prime[j]=0;
    14         }
    15     }
    16     return p;
    17 }
    18 int main(){
    19     cin>>t;
    20     int p=sieve(1e5);
    21     while(t--){
    22         bool flag=false;
    23         cin>>n; 
    24         if(n==2){
    25             printf("yes
    ");
    26             continue;
    27         }
    28         for(int i=0;prime[i]*prime[i]<=n;i++){
    29             if(n%prime[i]==0){
    30                 flag=true;
    31                 break;
    32             }
    33         }
    34         if(flag) printf("no
    ");
    35         else printf("yes
    ");
    36     }
    37     return 0;
    38 }
  • 相关阅读:
    jquery 插件扩展2
    jquery 插件扩展
    call apply bind
    bom object
    js oop 封装
    js oop 继承
    js页面之间传参2
    js弹出新窗口的6中方法
    display Tag
    js中extends方法
  • 原文地址:https://www.cnblogs.com/elpsycongroo/p/6911145.html
Copyright © 2011-2022 走看看