java从键盘输入一个整数判断是否为素数代码
素数java代码
素数java代码素数是指只能被1和自己整除的正整数,像2、3、5、7、11等都是素数。
在计算机编程中,判断一个数是否为素数是一项基本的算法。
本文将从Java语言的角度入手,介绍如何编写素数判断的代码,包括两种方法:暴力枚举法和筛法。
一、暴力枚举法暴力枚举法是一种较为简单粗暴的方法,通过一个循环枚举所有可能的因子,判断是否能被整除。
其Java代码如下:public static boolean isPrime(int n) { if (n < 2) { //小于2的数均不是素数 return false; } for (int i = 2; i <= Math.sqrt(n); i++) { if (n % i == 0) { //能被整除,即不是素数 return false; } } return true; //不被整除,即是素数 }首先判断输入的数n是否小于2,如果n小于2,则直接返回false,因为小于2的数均不是素数。
然后从2开始循环到n的平方根,检查是否能被整除,如果能则返回false,否则继续循环,最后返回true表示是素数。
这种方法的时间复杂度为O(√n),因为最多需要枚举n的平方根次数。
在较小的n值的情况下,这种方法较为有效,但当n较大时,效率低下。
二、筛法筛法是用于快速筛选素数的一种高效算法,它的原理是从小到大依次枚举素数,将其倍数标记为合数。
例如,当枚举到2时,将4、6、8、10等标记为合数;当枚举到3时,将6、9、12等标记为合数。
由于合数被标记多次,所以这种方法比暴力枚举法更快。
筛法主要有两种:埃氏筛法和欧拉筛法。
下面分别介绍它们的Java代码实现。
2.1 埃氏筛法埃氏筛法是一种简单直接的筛法,其Java代码如下:public static int[] getPrimes(int n) { if (n < 2) { //小于2的数没有素数 return new int[0]; } boolean[] isPrime = new boolean[n + 1]; //初始化所有数为素数 for (int i = 2; i <= n; i++) { isPrime[i] = true; } for (int i = 2; i <= Math.sqrt(n); i++) { if (isPrime[i]) { //当前数为素数 for (int j = i * i; j <= n; j += i) { //枚举它的倍数isPrime[j] = false; //标记为合数 } } } List<Integer> list = new ArrayList<>(); for (int i = 2; i <= n; i++) { if (isPrime[i]) { //将素数添加到列表中 list.add(i); } } int[] primes = new int[list.size()]; //将列表转成数组 for (int i = 0; i < primes.length; i++){ primes[i] = list.get(i); } return primes; }首先判断输入的n是否小于2,如果n小于2,则返回一个长度为0的素数数组。
专科—程序设计基础题库-java
专科15级《程序设计基础》题库100道<说明>1、 总共抽8道题,每小题12.5分,共100分。
按题型:顺序(1道)、分支(1道)、单循环(2道)、多循环(1道)、数组(1道)、字符串(1道)、方法(1道)。
1、 按难易程度:易(1道)、较易(4道)、较难(2道)、难(1道)。
2、考试要求:写代码实现(其中分支(1道)、单循环(2道)、多循环(1道)共四道要求先画出流程图,再根据流程图写代码),理论考试,2个小时。
一、顺序结构(10道抽1道)2、 请定义4个整型变量,并打印输出这4个变量的加、减、乘、除后的结果。
(易)3、 将华氏温度转化成摄氏温度。
公式为:C=(5/9)*(F-32),其中F 为华氏温度,C 为摄氏温度。
请根据给定的华氏温度输出对应的摄氏温度。
(易)4、 根据观察,蟋蟀的名叫频率与温度有关,具体的公式为T=(c+40)/10.其中,c 代表蟋蟀每分钟鸣叫数,T 代表华氏温度。
请根据蟋蟀每分钟的鸣叫数输出相应的华氏温度。
(易)5、 编写程序,定义0~1000的一个整数并将其各位数字之和赋给一个整数,如整数932,各位数字之和为14. (较易)6、 编程实现两个整数交换位置,例如:int x = 6,y = 9,交换后 x = 9,y = 6。
(较易)7、 求空间两点之间的距离。
(提示:空间一点(x,y,z ),可由三个实数来描述)(难)8、 已知圆的半径,求圆的面积。
(较易)9、 已知一个三角形的三边边长分别为a,b,c ,利用海伦公式求三角形的面积。
(较难)海伦公式:10、 求两数平方和的算术根。
(较难) 11、 给定一段时间求出它的秒数。
(如计算2小时 17分30秒等于多少秒)(较易)二、分支结构(20道抽1道)12、 两个整数比较大小,输出较大值。
(易) 13、 三个整数比较大小,输出最大值。
(较易) 14、 求下列函数中y 的值。
(较易)y=10 (x=0) y=3x+5 (x>0) y=x-2 (x<0)15、 判断某年是否为闰年。
java技能考核试题
【试题1】任务一:输入某年某月某日,判断这一天是这一年的第几天。
例如,2001年3月5日是这一年的第64天。
要求:使用分支结构语句实现。
任务二:输出阶梯形式的9*9口诀表,如图1.1所示。
图1.1阶梯形式的9*9口诀表要求:使用循环结构语句实现。
任务三:编程实现判断一个整数是否为“水仙花数”。
所谓“水仙花数”是指一个三位的整数,其各位数字立方和等于该数本身。
例如:153是一个“水仙花数”,因为153=13+53+33。
要求:用带有一个输入参数的方法或函数实现,返回值类型为布尔类型。
【试题2】任务一:已知某字符串数组,包含如下初始数据:a1,a2,a3,a4,a5 已知另一字符串数组,包含如下初始数据:b1,b2,b3,b4,b5,做程序将该两个数组的每一对应项数据相加存入另外一个数组,并输出。
输出结果为:a1b1,a2b2,a3b3,a4b4,a5b5。
要求:●定义2个数组,用于存储初始数据。
定义另外一个数组,用于输出结果。
●做循环将两个初始数组的对应项值相加,结果存入另外一个数组。
(不要边加边输出)●做循环将结果数组中的值按顺序输出。
任务二:写出一个函数:将某已知数组的奇数项组合成一个新的数组。
在主函数中调用该函数,并循环输出新数组的内容。
要求:●主函数定义一个初始化的数组,该数组中的值为:1,2,3,4,5,6,7,8,9,10,11●写出一个函数,该函数的函数名为:OddArray,函数需要的参数个数1个,参数数据类型为数组。
函数的返回值为数组。
函数体实现功能:将参数数组中的奇数项存入另外一个数组,并返回该数组到主函数中。
●在主函数定义一个新的数组,用于取得函数OddArray的返回值,然后循环显示数组的值。
(显示出来1,3,5,7,9,11)任务三:现有学生类,有2个属性:学号,姓名。
有大学生类继承此学生类,新增一个属性:专业。
写出学生类,以及大学生类。
实例化大学类为一个对象并给大学生类的所有属性赋值。
java输出1~100之间的全部素数的5种方式总结
java输出1~100之间的全部素数的5种⽅式总结⽬录需求:输出1~100的所有素数分析java输出素数找出素数规范输出需求:输出1~100的所有素数分析1.素数:判断条件1:只能被1和本⾝整除的称为素数;判断条件2:在区间(1,x/2)中找不到能整除素数x的整数;判断条件3:在区间(1,sqrt(x))中找不到能整除素数x的整数;2.⽅法:很多,但不外是循环嵌套外加条件语句;class PrintSuShu {public static void main(String[] args) {//⽅法⼀:根据素数的定义来遍历检查//外层循环遍历被除数i(因为1既不是素数也不是和数,所以直接从2开始遍历)for (int i = 2; i <= 100; i++) {//定义⼀个逻辑值,初值为trueboolean flag = true;//内层遍历除数jfor (int j = 2; j < i; j++) {//判断是否存在j能整除i,若存在,则更改flag的值并跳出循环if (0 == i % j) {flag = false;break;}}//根据flag的值判断是否输出iif (flag) {System.out.print(i + " ");}}System.out.println('\n' + "---------------------------");//⽅法⼆:根据判断条件2进⾏遍历检查,减少遍历次数//外层循环遍历被除数i(因为1既不是素数也不是和数,所以直接从2开始遍历)for (int i = 2; i <= 100; i++) {//定义⼀个逻辑值flag,初始值为trueboolean flag = true;//内层循环遍历除数j(注意:此处若不取边界,则当i=4时,j=2会因为⼩于i/2=2⽽直接跳出内循环)for (int j = 2; j <= (i / 2); j++) {//判断是否存在除数j能整除i,若存在,则修改flag的值并跳出循环if (0 == i % j) {flag = false;break;}}//根据flag的值判断是否输出iif (flag) {System.out.print(i + " ");}}System.out.println('\n' + "---------------------------");//⽅法三:根据判断条件3进⾏遍历检查,减少遍历次数//外层循环遍历被除数i(因为1既不是素数也不是和数,所以直接从2开始遍历)for (int i = 2; i <= 100; i++) {//定义⼀个逻辑值flag,初始值为trueboolean flag = true;//内层循环遍历除数j(注意:此处若不取边界,则当i=4时,j=2会因为⼩于sqrt(i)=2⽽直接跳出内循环)//再思考⼀下若i=25时呢?若不取边界还有那些不是素数的数会输出呢?for (int j = 2; j <= Math.sqrt(i); j++) {//判断是否存在除数j能整除i,若存在,则修改flag的值并跳出循环if (0 == i % j) {flag = false;break;}}//根据flag的值判断是否输出iif (flag) {System.out.print(i + " ");}}System.out.println('\n' + "---------------------------");/*⽅法四:在⽅法三的前提上优化,优化基础是除2外的所有偶数均不是素数,*(i+=2)只遍历奇数,减少外层遍历次数;同理,由于奇数是不能被偶数整除的,*(j+=2)只遍历奇数,减少内层遍历次数*/System.out.print("2 ");//外层循环遍历被除数i(因为1既不是素数也不是和数,所以直接从2开始遍历)for (int i = 3; i <= 100; i += 2) {//定义⼀个逻辑值flag,初始值为trueboolean flag = true;//内层循环遍历除数j(注意:此处若不取边界,则当i=4时,j=2会因为⼩于sqrt(i)=2⽽直接跳出内循环)//再思考⼀下若i=25时呢?若不取边界还有那些不是素数的数会输出呢?for (int j = 3; j <= Math.sqrt(i); j += 2) {//判断是否存在除数j能整除i,若存在,则修改flag的值并跳出循环if (0 == i % j) {flag = false;break;}}//根据flag的值判断是否输出iif (flag) {System.out.print(i + " ");}}System.out.println('\n' + "---------------------------");//联想⼀下,能被2整除(偶数)的直接剔除,同样的道理,能被3or5整除的剔除掉会不会让外层循环的次数更少呢?//此处才到100,若是1000呢?10000呢?//定义⼀个数组,由于剔除了偶数,故数组长度不会超过总个数的⼀半int[] arr = new int[500];int count = 0;for (int i = 6; i <= 1000; i++) {boolean flag = true;if (0 == i % 2 || 0 == i % 3 || 0 == i % 5) {flag = false;}if (flag) {arr[count] = i;count++;}}System.out.println("6~1000中剔除能被2or3or5整除的数后还剩" + count + "个");System.out.println("1~1000中所有素数为:");System.out.print("2" + "\t");System.out.print("3" + "\t");System.out.print("5" + "\t");count = 0;for (int i = 0; i < 500; i++) {boolean flag = true;if (0 == arr[i]) {break;}for (int j = 7; j <= Math.sqrt(arr[i]); j += 2) {if (0 == (arr[i]) % j) {flag = false;break;}}if (flag) {System.out.print((arr[i]) + "\t");count++;}}System.out.println("\n" + "---------------------");System.out.println("\n" + "其中6~1000中剔除能被2or3or5整除的数中还是素数的有" + count + "个");}}java输出素数java输出1,000,000之内的所有素数找出素数for(n=3;n<=1000000;) {for(i=2;i<n;i++) {if(n%i= =0) break;if(i= =n-1) {su[count]=n;count++;}}n+=2;}加⼆是因为从3开始奇数有可能是素数,第⼀个循环遍历1000000个数,第⼆个循环看它是不是素数。
课堂作业(模块1:Java编程逻辑).doc
课堂作业模块1 Java编程逻辑【第1课】【作业1】编写一个Java程序,在控制台上输出如下两行信息:Hello,World!Hello,Java!考核点1:了解一个Java程序的启动位置(即程序入口)。
考核点2:掌握基本输出语句:System.out.println(字符串)【第2课】【作业1】从键盘输入3个整数a、b、c,计算a+b*c的结果后输出,验证计算结果是否遵循运算符的优先级顺序。
考核点1:使用Scanner类获取键盘输入。
考核点2:基本运算符及其优先级顺序。
【作业2】从键盘输入1个实数r,计算以r为半径的圆的面积并输出结果,要求将π定义为符号常量。
考核点:符号常量的基本用法。
【第3课】【作业1】从键盘输入3个整数,比较大小后输出最大者。
考核点:if-else语句的运用。
【作业2】从键盘输入一个3位数,判断其是否为水仙花数。
所谓“水仙花数”是指一个三位整数,其各位数字立方和等于该数本身。
例如:153=13+53+33,所以153是一个水仙花数。
考核点:基本数学运算符和逻辑运算符的用法。
【第4课】【作业1】从键盘输入3个整数,比较大小后按由小到大的顺序输出。
考核点:if-else语句嵌套运用。
【作业2】从键盘输入一个年份和一个月份,输出此月份有多少天(考虑闰二月的情况)。
考核点:使用switch-case多分支语句。
【第5课】【作业1】从键盘输入一个正整数,判断其是否为素数。
素数指只有1和它本身两个因子的整数。
考核点:基本循环语句的用法。
【作业2】输出100-999之间的全部水仙花数。
考核点:基本循环语句的用法。
【作业3】从键盘输入一个正整数,判断并输出该正整数是几位数。
考核点1:基本循环语句的用法。
考核点2:分离一个整数各个位数字的方法。
【第6课】【作业1】编写一个Java程序,输出如下图案,图案的行数由键盘输入。
(1)观察图案中行、列及星星个数之间的关系。
(2)扩展练习,输出如下图案,图案的行数由键盘输入。
(完整版)java程序填空题
(完整版)java程序填空题一、程序填空题(每空3分,共30分)1.以下程序要求从键盘输入一个整数,判别该整数为几位数,并输出结果,请将下面的程序填写完整。
public class Blank1 {public static void main(String[] args) throws IOException { Scanner sc=new Scanner( (1) );int count=0,t;int x=sc.nextInt();sc.close();t=x;while(t!=0){count++;(2) ;}System.out.println(x+"是"+count+"位数。
");}}答案:(1)System.in(2)t=t/102.在下面的程序中使用方法重载分别实现了两个和三个整数的相加,请将下面的程序填写完整。
class AddOver{public (3){return a+b;}public int add( int a, int b, int c ){return a+b+c ;}}public class Blank2{public static void main(String[] args){AddOver a= (4) ;System.out.println(a.add(1,2));System.out.println(a.add(1,2,3));}}答案:(3)int add(int a,int b)(4)new AddOver()3. 构造一个类来描述一个点,该类的构成包括点的x和y两个坐标,以及一些对点进行的操作,包括:取得点的坐标值,利用另一个点对当前点的坐标进行赋值,请将下面的程序填写完整。
class Point{int x,y;public(5) (int x, int y){this.x=x; this.y=y;}public Point getPoint(){Point temp = new Point(0,0);temp.x=x; temp.y=y;return (6);}public void setPoint( (7) ){this.x=s.x; this.y=s.y;}}public class Blank3 {public static void main(String[] args){Point a = new Point(3,4);Point b = new Point(0,0);b=a.getPoint();Point c = new Point(0,0);c.setPoint(b);}}答案:(5)Point(6)temp(7)Point s4. 下面的程序完成从D:\Hello.txt中读取文本并显示在屏幕上,请将下面的程序填写完整。
20个java案例
20个java案例以下是20个Java案例,涵盖了不同的主题和功能。
每个案例都有一个简要的描述和示例代码。
1. 计算两个数的和。
描述,编写一个程序,计算两个整数的和并输出结果。
示例代码:java.int num1 = 10;int num2 = 5;int sum = num1 + num2;System.out.println("两个数的和为," + sum);2. 判断一个数是否为偶数。
描述,编写一个程序,判断一个整数是否为偶数,并输出结果。
示例代码:java.int num = 6;if (num % 2 == 0) {。
System.out.println(num + "是偶数。
");} else {。
System.out.println(num + "不是偶数。
");}。
3. 求一个数的阶乘。
描述,编写一个程序,计算一个正整数的阶乘,并输出结果。
示例代码:java.int num = 5;int factorial = 1;for (int i = 1; i <= num; i++) {。
factorial = i;}。
System.out.println(num + "的阶乘为," + factorial);4. 判断一个字符串是否为回文字符串。
描述,编写一个程序,判断一个字符串是否为回文字符串,并输出结果。
示例代码:java.String str = "level";boolean isPalindrome = true;for (int i = 0; i < str.length() / 2; i++) {。
if (str.charAt(i) != str.charAt(str.length() 1 i)) {。
isPalindrome = false;break;}。
判断一个数是否是素数
判断⼀个数是否是素数判断⼀个数是否是素数⼀、判断⼀个数是否是素数?public boolean isPrimeNumber(int num){if(num == 2) return true; //2特殊处理if(num < 2 || num % 2 == 0) return false; //识别⼩于2的数和偶数for(int i=3; i<=Math.sqrt(num); i+=2){if(num % i == 0){ //识别被奇数整除return false;}}return true;}质数的定义:质数(prime number)⼜称为素数,有⽆限多个。
质数定义在⼤于1的⾃然数中,除了1和它本⾝以外不会再有其它因数的数称为质数。
(1)从2开始,2是最⼩的质数。
(2)除了2之外的偶数全都不是质数,因为除了1和⾃⾝之外它们还能被2整除。
若为⼤于2的奇数,则进⼊下⼀步继续判断。
(3)将其开⽅,若从3到开⽅向下取整之间的所有奇数都不能将其整除,则说明该数为质数。
⾄于为什么只⽤除到其平⽅根?因为如果⼀个数不是素数是合数,那么⼀定可以由两个⾃然数相乘得到,其中⼀个⼤于或等于它的平⽅根,⼀个⼩于或等于它的平⽅根。
⼆、三种素数之间的⽐较?package Java基础;public class TestPrime {public static void main(String[] args) {long startTime1 = System.currentTimeMillis();for(int i=1;i<=100;i++){if(isPrime1(i)){System.out.print(i+" ");}}long endTime1 = System.currentTimeMillis();System.out.println("⽅式⼀消耗时间:"+(endTime1-startTime1));long startTime2 = System.currentTimeMillis();for(int i=1;i<=100;i++){if(isPrime2(i)){System.out.print(i+" ");}}long endTime2 = System.currentTimeMillis();System.out.println("⽅式⼆消耗时间:"+(endTime2-startTime2));long startTime3 = System.currentTimeMillis();for(int i=1;i<=100;i++){if(isPrime3(i)){System.out.print(i+" ");}}long endTime3 = System.currentTimeMillis();System.out.println("⽅式三消耗时间:"+(endTime3-startTime3));}/** 1. 根据概念判断:如果⼀个正整数只有两个因⼦, 1和p,则称p为素数.时间复杂度O(n).*/public static boolean isPrime1(int n) {if (n < 2)return false;for (int i = 2; i < n; ++i)if (n % i == 0)return false;return true;}/** 2. 改进, 去掉偶数的判断时间复杂度O(n/2), 速度提⾼⼀倍.*/public static boolean isPrime2(int n) {if (n < 2)return false;if (n == 2)return true;if (n % 2 == 0)return false;for (int i = 3; i < n; i += 2)if (n % i == 0)return false;return true;}/** 3. 进⼀步减少判断的范围定理: 如果n不是素数, 则n有满⾜1< d<=sqrt(n)的⼀个因⼦d.证明: 如果n不是素数, 则由定义n有⼀个因⼦d满⾜1< d< n.如果d⼤于sqrt(n), 则n/d是满⾜1< n/d<=sqrt(n)的⼀个因⼦.时间复杂度O(Math.sqrt(n)/2), 速度提⾼O((n-Math.sqrt(n))/2).*/public static boolean isPrime3(int n) {if (n < 2)return false;if (n == 2)return true;if (n % 2 == 0)return false;for (int i = 3; i * i <= n; i += 2)if (n % i == 0)return false;return true;}}三、质数检测给出N个正整数,检测每个数是否为质数。
JAVA算法面试10题及答案
JAVA经典算法面试10题及答案【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假设兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21….【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,那么说明此数不是素数,反之是素数。
【程序3】题目:打印出所有的“水仙花数“,所谓“水仙花数“是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个“水仙花数“,因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
【程序4】题目:将一个正整数分解质因数。
例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,那么说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> k,但n能被k整除,那么应打印出k的值,并用n 除以k的商,作为新的正整数你,重复执行第一步。
(3)如果n不能被k整除,那么用k+1作为k的值,重复执行第一步。
【程序5】题目:利用条件运算符的嵌套来完成此题:成绩> =90分的同学用A表示,60-89分之间的.用B表示,60分以下的用C表示。
1.程序分析:(a> b)?a:b这是条件运算符的根本例子。
【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为‘\n ‘. 【程序8】题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。
JAVA程序设计实验
JAVA程序设计实验实验1 JAVA基础一、实验目的1.掌握JA V A语言的各种数据类型2.熟悉运算符和表达式。
3.学会编写简单程序二、实验环境硬件:计算机软件:操作系统:windows98以上或LINUX、JDK 1.2以上三、实验内容:下面是一个简单的JA V A程序,将多种类型变量通过各种运算符组成不同的表达式,并将运算结果赋值给同类型的变量,使用println()方法输出各变量的值。
Public class ExampleTest(){Public static void main(String args[]){Int no=(11+20)*3/5; //A行System.out.println(“no=”+no);no++; //B行System.out.println(“no=”+no);Boolean bool=false; //C行bool=true&!bool; //D行System.out.println(“bool=”+bool);Byte bV alue=0x10; //E行System.out.println(“bV alue=”+bV alue);Bool=(no>bV alue); //F行System.out.println(“bool=”+bool);}}四、实验的主要步骤1.用edit录入以上程序内容并保存,注意文件名。
2.用javac.exe命令编译刚保存的JA V A文件。
3.如果编译通不过,用edit打开源代码进行修改。
重复第2步和第3步至到编译通过。
4.用java.exe运行编译生成的类文件。
5.查看运行结果。
实验2 JAVA流程控制一、实验目的1.掌握条件语句的使用。
2.熟悉循环语句的使用。
二、实验环境硬件:计算机软件:操作系统:windows98以上或LINUX、JDK 1.2以上。
三、实验内容1.求a+aa+aaa+…+a..a (n个)的和,其中a为1-9之间的整数。
判断素数的c语言程序
判断素数的c语言程序
素数是指除了1和它本身外不再有其他因数的自然数。
例如,2是素数,周围的情况是1和2。
#include <stdio.h>
int main() {
int num, i;
int flag = 0; // 将flag置为0,可以用来判断输入的数是否是素数。
printf("请输入一个正整数: ");
scanf("%d", &num);
for (i = 2; i < num; i++){ //从2到num-1检查是否有因数。
if (num % i == 0){
flag = 1;
break;
}
}
if (flag == 0){
printf("您输入的数%d是素数。
\n", num);
} else {
printf("您输入的数%d不是素数。
\n", num);
}
return 0;
}
/*
以上是一段简单的判断素数的C语言程序。
它实现了以下功能:(1)根据终端输入要检查的正整数;
(2)从2到num-1,循环检查是否有因数;
(3)如果有因数,就将flag置为1,并跳出循环;
(4)根据flag的值,判断输入的正整数是否为素数。
以上程序的原理其实非常的简单:如果一个正整数只能被1和它本身整除,那么它就是素数,反之则不是素数。
因此,我们只需要从2到num-1,每个数都检查一次它们能否被num整除,如果有任何一个可以成功整除,就说明num不是素数。
1编写一个函数:intisPrime(intx),判断x是否是素数,然后
1.编写一个函数:int isPrime(int x),判断x是否是素数,然后在main函数中调用该函数,判断100之内有哪些素数,并把这些素数输出。
#include <iostream>#include <cmath>using namespace std;int fan_isPrime(int fan_x){int k=int(sqrt(fan_x));for(int i=2;i<=k;i++)if(fan_x%i==0)break;if(i>k)cout<< fan_x<<' ';return fan_x;}int main(){cout<<"1~100之间的素数是:"<<endl;int i;for(i=1;i<=100;i++)fan_isPrime(i);cout<<endl;return 0;}2.编写一个函数:int sum(int a[] int start, int end),实现求数组a中的下标为start到end之间所有元素的和。
然后在main函数中调用该函数,求出给定数组中指定下标范围的值,数组元素的值在定义数组时给出。
#include <iostream>using namespace std;int fan_sum(int fan_a[],int fan_start, int fan_end){int k=0;for (int i=fan_start;i<=fan_end;i++)k+=fan_a[i];return k;}int main(){int fan_a[10]={0,1,2,3,4,5,6,7,8,9};int fan_start,fan_end;cout<<"Please input the start number and the end number:"<<endl;cin>>fan_start>>fan_end;cout<<fan_sum(fan_a,fan_start, fan_end)<<endl;return 0;}3.编写一个函数:void reverse( int a[], int n),将数组a中n个元素反序排列,如将1,2,3,4,5变为5,4,3,2,1。
第一章java程序设计概述
第一章java程序设计概述一、单选1. 下列说法正确的是()A. 当运行javac 命令对一个java源程序(.java文件)进行编译时,不必写出该源文件的扩展名.java。
B. 当用java命令解析执行一个class文件时,必须写出该文件的完整扩展名,包括扩展名.class。
C. 当运行javac 命令对一个java源程序(.java文件)进行编译时,必须写出该源文件的完整文件名,包括扩展名.java。
D. 无论是运行javac 还是 java命令,后面的源文件都必须给出文件的扩展名。
2. main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的()A.public static void main()B. public static void main(String[ ] args)B.public static int main(String[ ] args) D. public void main(String[] args)3. 解释执行和编译一个Java应用程序应分别采用的命令是()A. java 和 javacB. javac 和java4. 下列不属于Java语言特点的是()A. 动态性B. 多线程C. 多重继承D. 可移植性5. 编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )A. .javaB. .classC. .htmlD. .exe二、判断题1. 后缀名是 .java的文件是Java的类文件。
2. 命令java 与 javac 的实现效果是相同的。
三、填空1. Java程序可分为()和()两大类。
2. 开发与运行Java程序需要经过的三个主要步骤为( )、( )和( )。
3. 如果一个Java源程序文件中定义有4个类,则使用Sun公司的JDK编译器javac编译该源程序文件将产生()个文件名与类名相同而扩展名为()的字节码文件。
50道经典Java逻辑编程题
【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
【程序4】题目:将一个正整数分解质因数。
例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
1.程序分析:(a> b)?a:b这是条件运算符的基本例子。
【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为'\n '.【程序8】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
JAVA编程习题1
输入2个整数begin和end,分别代表摄氏温度的起止值,
输出该范围内摄氏温度C和华氏温度F的转换表。
F = 32 + C * 9 / 5
例:括号内是说明
输入
3 (repeat=2)
1
10
5
输出
1.0
3628800.0
120.0*/
22.test40003求x的n次幂
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
读入1 个正实数x和1个正整数 n(n<=50),计算并输出x的n次幂。
输入整数a和b,计算并输出a、b的和与差。
例:
输入
2 -8
输出
The sum is -6
The difference is 10*/
6.test20002求平方根
//程序填空,不要改变与输入输出有关的语句。
输入1个实数x,计算并输出其平方根。
例:
输入
1.21
输出
例:括号内是说明
输入
2 (repeat=2)
5 5 3
1 1 4
输出
area=7.154544;perimeter=13.0
These sides do not correspond to a valid triangle
16.test30004判断数的符号
/*输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
java如何判断一个数是否是素数(质数)
java如何判断⼀个数是否是素数(质数)⽬录java判断⼀个数是否是素数(质数)质数(prime number)⼜称素数,有⽆限个思路java 求1-100之间的质数质数定义:1、质数实例⼀2、质数实例⼆3、质数实例三4、质数实例四5、质数实例五6、质数实例六java判断⼀个数是否是素数(质数)质数(prime number)⼜称素数,有⽆限个质数定义为在⼤于1的⾃然数中,除了1和它本⾝以外不再有其他因数,这样的数称为质数。
import java.util.Scanner;public class TestWork {public static void main(String[] args) {boolean isPrime = true;Scanner sc = new Scanner(System.in);System.out.println("请输⼊⼀个正整数");int num = sc.nextInt();if (num > 0) {int k = (int) Math.sqrt(num);//k为num的正平⽅根,取整数for (int i = 2; i <= k; i++) {if (num % i == 0) {isPrime = false;//不是素数break;}}}if (isPrime) {System.out.println(num + "是素数");} else {System.out.println(num + "不是素数");}}}输出1~1000之间的素数思路偶数肯定不是素数,所以递增的时候可以以奇数的形式递增,再在奇数中去掉⾮质数的数。
public class TestWork {public static void main(String[] args) {boolean isPrime = true;int PrimeCount=0;for (int i = 3; i <= 1000; i+=2) {int k = (int) Math.sqrt(i);//k为num的正平⽅根,取整数isPrime = true;for (int j = 2; j <= k; j++) {if (i % j == 0) {isPrime = false;//不是素数break;}}if (isPrime) {PrimeCount++;System.out.print(i+"\t");if(PrimeCount%5==0){System.out.println();}}}}}java 求1-100之间的质数质数定义:质数⼜称素数。
for循环输出素数探究【java】
for循环输出素数探究【java】⼀、判断953是不是为素数(质数)。
代码:1/**2判断953是不是为素数(质数)3分析:4素数指整数在⼀个⼤于1的⾃然数中,除了1和此整数⾃⾝外,没法被其他⾃然数整除的数。
5假设953是素数,则:6 953 % 2 !== 07 953 % 3 !== 08 953 % 4 !== 09 ……10 953 % 952 !== 011反推得出,只要953被2~952之间的任何⼀个整数整除,则953不是素数。
1213除数从2开始到952按照整数依次递增,则⽤for循环表⽰为:14 for(int i=2;i<953;i++){15判断953能否被i整数16如果能被整除,则953不是素数,结束循环,跳出去输出“953不是素数”17如果不能被整除,则953是素数,结束循环,跳出去输出“953是素数”18 }19*/2021public class IsPrime22 {23public static void main(String[] args){2425int num = 953;26boolean isPrime = true; // 标记数字num默认为素数27for(int i=2;i<num;i++) {28if(num%i==0) { // num能够被2~num-1之间的⾃然数整数29 isPrime = false; // 标记数字num为⾮素数30break; // 结束循环31 }32 }3334 System.out.println(isPrime?num+"是素数":num+"不是素数");3536 }37 }代码结果显⽰:⼆、列出1~100之间的所有素数代码:1/**2列出1~100之间的所有素数3分析:4上⾯代码⽚段表⽰判断num为953的⾃然数是不是素数,5假设num为937,则判断937是不是素数,6假设num为933,则判断933是不是素数,78因此将num设置为⼀个变量,利⽤for循环进⾏从1~100进⾏递增,9将上门的代码⽚段放⼊该for循环中,判断为素数就打印出来。
python判断所输入的任意一个正整数是否为素数的两种方法
python判断所输⼊的任意⼀个正整数是否为素数的两种⽅法素数(也称质数),是指除了1和该数本⾝,不能被任何正整数整除的正整数。
判断⼀个正整数m是否为素数,只要判断m可否被2~根号m之中的任何⼀个正整数整除,如果m不能被此范围中任何⼀个正整数整除,m即为素数,否则m为合数。
⽅法⼀:(利⽤for循环和break语句)import mathm = int(input("请输⼊⼀个整数(>1):"))k = int(math.sqrt(m))for i in range(2, k+2):if m % i == 0:break #可以整除,肯定不是素数,结束循环if i == k+1: print(m, "是素数!")else: print(m, "是合数!")⽅法⼆:(利⽤while循环和bool变量)import mathm = int(input("请输⼊⼀个整数(>1):"))k = int(math.sqrt(m))flag = True #假设输⼊的整数为素数i = 2while (i <= k and flag == True):if (m % i == 0): flag = False #可以整除,肯定不是素数,结束循环else: i += 1if (flag == True): print(m, "是素数!")else: print(m, "是合数!")例:打印100~200间的全部素数,每⾏输出10个import math;n=0for m in range(101,201,2):k = int(math.sqrt(m))for i in range(2,k+2):if m % i == 0:breakif i == k+1:if n % 10 == 0:print()print('%d' % m,end=' ')n += 1以上这篇python判断所输⼊的任意⼀个正整数是否为素数的两种⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
Java课后习题答案第五章
char c[] = {'O','l','y','m','p','i','c',' ','G','a','m','e','s'};
rever(c);
System.out.println(c);
}
public static void rever(char c[]){char t;
for(int i=0,j=c.length-1;i<j;i++,j--)
import java.io.*;
public class Test
{ public static void main(String[] args)
{ int i,a=0,s=0;
System.out.print("请输入数a:");
try{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
{
sum+=x[i];
}
System.out.println("平均数:"+sum/10);
}
}
17.利用数组输入6位大学生3门课程的成绩,然后计算
(1)每个大学生的总分;
(2)每门课程的平均分;
import java.io.*;
public class Scores
{
public static void main(String[] args)throws IOException