zoukankan      html  css  js  c++  java
  • poj 2635 The Embarrassed Cryptographer ??/Java??(???)

    题意:
    数K( 4 <= K <= 10^100 )是两个素数的积,L( 2 <= L <= 10^6)是两个素数中最小素数的下限,如果两个素数都不小于L,输出GOOD,否则输出其中最小的素数。
    分析:
    简单题,枚举L以内的素数,判断是否是K的因子即可。K很大,可以同余取模。不过还是用Java水之更简单。

    import java.io.BufferedInputStream;
    import java.math.BigInteger;
    import java.util.Scanner;
    
    
    public class Main {
        Scanner cin=new Scanner(new BufferedInputStream(System.in));
        static int N=1000009;
        boolean np[]=new boolean[N];
        int len;
        int p[]=new int[N];
        int cnt=0;
        public void getPrime(){
            for(int i=2;i<N;i++){
                if(np[i]==false)p[cnt++]=i;
                for(int j=0;j<cnt;j++){
                    if(i*p[j]>=N)break;
                    np[i*p[j]]=true;
                    if(i%p[j]==0)break;
                }
            }
        }
        public Main(){
            getPrime();
            while(cin.hasNext()){
                BigInteger b=cin.nextBigInteger();
                int L=cin.nextInt();
                if(b.equals(BigInteger.ZERO)&&L==0)break;
                boolean flag=true;
                int ans = 0;
                for(int i=0;p[i]<L;i++){
                    if(b.mod(BigInteger.valueOf(p[i])).equals(BigInteger.ZERO)){flag=false;ans=p[i];break;}
                }
                if(flag)System.out.println("GOOD");
                else System.out.printf("BAD %d
    ",ans);
            }
        }
        public static void main(String[] args){
            new Main(); 
        }
    }
  • 相关阅读:
    |,&,<<,>>运算符
    Unity 异步加载场景
    string字母排序,
    冒泡算法
    Direct3D 12 编程---(1)
    点云密度粗估计
    git工具使用
    opencv---灰度图像与彩色图像遍历
    求平面两直线的交点,两直线段的交点
    结构体重载运算符
  • 原文地址:https://www.cnblogs.com/01world/p/5762820.html
Copyright © 2011-2022 走看看