首页 > 编程知识 正文

素数判断方式,判断素数的5种方法

时间:2023-05-06 01:58:06 阅读:245256 作者:1231

//判断是否为质数:
/*  并非一次判断得到的结果---用开关()
 *    1.boolean flag = true;假设是质数
 *    2.flag = false;       改为不是质数
 *    3.if  else            判断得结论
 *    判断数最多到这这个数的平方根就行了。省时
 *    比如求100旳质数,求它的平方根,只判断2~10就已经够了,根据经验得知。

 * */

import java.util.Scanner;public class Foundation {public static void main(String[] args) {int count=0;for(int num=2;num<=100;num++){boolean flag =true;for(int i=2;i<=Math.sqrt(num);i++){if(num%i==0){flag=false;break;}}if(flag){count++;//质数个数增1,计数器System.out.print(num+"t");if(count%10==0){System.out.println();}}}}}



/*方法:
 * 1.方法:函数/过程
 *   1.1)用于封装一段特定的逻辑功能
 *   1.2)方法尽可能的独立(一个方法只干一件事)
 *   1.3)方法可以被反复的调用多次
 *   1.4)避免代码的重复,便于代码的维护,有利于
 *        团队开发。
 * 2.方法的定义:
 *     修饰词、返回值类型、方法名、参数列表、方法体
 *     方法执行完之后,需要用到方法中的某个数--需要用返回值  
 * 3.方法的调用:
 *    3.1)无返回值方法(有参传参);
 *    3.2)有返回值的方法:
 *        数据类型 变量 = 方法名(有参传参)
 * 4.return:
 *    4.1)return 值 ://4.11结束方法的执行  4.12)返回一个值
 *    4.2)return;   结束方法的执行(只能用在void的类型里)
 * 5.猜字符小游戏:
 *   分析:
 *     5.1)数据结构:
 *        5.1.1)char[] chs;//随机生成的字符数组
 *        5.1.2)char[] input;//用户输入的字符数组
 *        5.1.3)int letterRight;//字符对的个数
 *               int positionRight;//位置对的个数
 *               
 *               int[] result; //对比的结果
 *        5.1.4)int score;//得分
 *               int count;//猜错的次数
 *      5.2)设计程序结构:方法
 *         5.2.1)主方法:
 *               public staic void main(String[] args){
 *               
 *               } 
 *         5.2.2) 随机生成字符数组:
 *               public staic char[] generage(?){
 *               char[] chs = new chs[5];
 *                  //给chs中的每一个元素随机赋值
 *                 return chs;
 *               } 
 *         5.2.3)对比:随机字符数组与用户输入的字符数组
 *                public static int[] (char[] chs,char[] input){
 *                 int[] result = new int[2];
 *                  //
 *                  return result;
 *                } 
 * 5.3)设计算法:方法的实现
 *     对基本类型判断相等,用==
 *    

 * */

猜字符游戏:

//猜字符游戏import java.util.Scanner;public class Guessing {public static void main(String[] args) { Scanner scan = new Scanner(System.in);char[] chs = generate();System.out.println(chs);int count=0;while(true){//自造死循环System.out.println("猜吧!");String str = scan.next().toUpperCase();//获取用户输入的字符串,并转换成大写字母if(str.equals("EXIT")){System.out.println("下次再来吧!");break;}char[] input = str.toCharArray();//将字符串转换成字符数组int[] result = check(chs,input);//对比随机字符数组与用户输入的字符比if(result[0]==chs.length){//猜对了int score = 100*chs.length-10*count;//一个字符100分,猜错1次减10分System.out.println("恭喜你,猜对了,得分为:"+score);break;}else{//猜错了count++;//猜错次数增1System.out.println("字符对个数:"+result[1]+",位置对个数:"+result[0]);}}}//随机生成字符数组public static char[] generate(){char[] chs = new char[5];//随机字符数组、char[] letters ={'A','B','C','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};//字符可选范围数组 boolean[] flags = new boolean[letters.length];//开关数组,默认值为false,表示未存过for(int i=0;i<chs.length;i++){ int index;//随机下标do{ index=(int)(Math.random()*25);//生成随机下标(0到25) }while(flags[index]==true);//若下标对应的开关为true时,表示已存过,则重新生成index //当下标对应的开关为false时,则循环结束,表示未存过chs[i]=letters[index]; //基于index下标去letters中获取数据 ,并赋值给chs中的每一个元素 flags[index]=true; //修改Index下标对应的开关为true,表示已存过 }return chs;} //对比:随机字符数组与用户输入的字符数组public static int[] check(char[] chs,char[] input){int[] result = new int[2];//对比结果//result[1]为字符对 result[0]为位置对//位置对在字符对的基础之上for(int i=0;i<chs.length;i++){for(int j=0;j<input.length;j++){if(chs[i]==input[j]){//字符对result[1]++;//字符对个数增1if(i==j){//位置对result[0]++;}break;//退出一次循环}}}return result;}}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。