您的位置:首页 > 其它

算法第二次作业

2014-03-19 19:33 183 查看
2.1: 判断一个正整数是否为质数的算法。函数签名如下
     int isPrime(long a)    输入:一个长整数a    输出:返回1(为质数),返回0(非质数) 

import java.util.*;

public class Prime {
static int isPrime(long a){
if(a==1) return 0;
for(long i=2;i<=Math.sqrt(a);i++){
if(a%i==0)
return 0;
}
return 1;
}
public static void main(String args[]){
System.out.println("请输入一个长整数:");
Scanner scan=new Scanner(System.in);
long x = scan.nextLong();
int y =isPrime(x);
if(y==0){
System.out.println(x + "不是质数,返回" + y);
}else{
System.out.println(x + "是质数,返回" + y);
}
}
}

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 createRndInteger {
public static void main(String[] args) {
System.out.print("请输入随机生成n bit位的长整数的长度n:");
Scanner scanner=new Scanner(System.in);
int x= scanner.nextInt();
long random= createRndInteger(x);
System.out.println("随机生成的" + x + "位长整数是:" + random);
}
public static  long createRndInteger(int n){
int a[]={0,1};
StringBuilder sb=new StringBuilder();
Random random=new Random();
if(n==1){
return a[random.nextInt(a.length)];
}else{
sb.append(1);
for(int i=0;i<n-1;i++){
sb.append(a[random.nextInt(a.length)]);
}
long num=Long.parseLong(sb.toString());
return num;
}
}

}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: