实现RSA算法

来源:互联网 发布:部落冲突8本满科技数据 编辑:程序博客网 时间:2024/05/18 22:46
2.1: 判断一个正整数是否为质数的算法。函数签名如下
     int isPrime(long a)
    输入:一个长整数a
    输出:返回1(为质数),返回0(非质数)

import java.util.Scanner;public class JavaApplication1 {    public static void main(String[] args) {      Scanner scr=new Scanner(System.in);      long i =scr.nextLong();     if( isPrime( i)==1)     System.out.println(i+"是素数");    else System.out.println(i+"不是素数");    }    public static int isPrime(long i){        int flag=0;            if ( i % 2 == 0) { // 质数是除2以外的奇数                                long sqrt = (long) Math.sqrt(i);// 一个数如果是合数,那么它的所有的因子不超过它的开方                               for (int j = 2; j < sqrt; j++) {                                   if (i % j == 0)                     { flag=0; break; }                      flag=1;                                 }                   }       return flag;}}
2.2: 随机生成一个n bit位的长整数。函数签名如下
    long createRndInteger(int n)
    输入:随机数bit位的长度为n(解释:3bit位,则最大为111,最小为100;n bit位,则该数字二进制长度为n)
    输出:返回该随机数


import java.util.Random;import java.util.Scanner;public class chengfa { public static void main(String[] args) {           Scanner ins=new Scanner(System.in);     int n=ins.nextInt();   System.out.println(createRndInteger( n));} public static long createRndInteger(int n){    System.out.println("intput a int ");      /* double a = Math.pow(2, n-1);    double b = Math.pow(2, n-1)-1;    double r=Math.random();    int L=a+b*r;      String B=Integer.toHexString(L);*/    int a =(int)Math.pow(2, n);    int b=(int)Math.pow(2, n-1);    Random r=new Random();        long l=(long)r.nextInt(a-b)+b;      System.out.println(l);    return l;    }}



0 0
原创粉丝点击