这篇笔记讲讲关于java中质数的问题。

一、什么是质数(素数)?

定义:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。它可以有无限个数。

二、java习题:输出1-100之内的所有质数

这题有几种解题思路:

第一种思路:

1、外层循环作为被除数,内层循环作为除数。

2、定义一个Boolean,标记外层循环数是否为质数。默认为 true。

3、内层循环结束,如果开关还为true。即被除数为质数,打印出来。

代码如下:

 class Demo2{
     public static void main(String args[]){
         //1既不是质数也不是和数,使用i从2开始。
         for(int i=2;i<=1000;i++){
             boolean flag = true;
             for(int j = 2;j < i;j++){
                 if(i % j==0){
                     flag = false;
                     break;//到了1000内的质数,就跳出循环,并输出结果。
                 }
             }
             if(flag){
                 System.out.print(" "+i);
             }
         }
     }
 }

运行效果:

第二种思路:

1、这个程序用了两层循环,外层循环列举从2到100之间的每一个整数(作为被除数),然后在内层循环中用从2到它之之间的数去除它,如果找到一个能够整除它的数,内层循环将跳出。如果一张没找到能够整除它的数,则当内层循环将2到它直接按的所有数都尝试过一遍之后,内循环也跳出。

2、等到内层循环跳出之后,程序接着判断j是否大于等于i,如果是上面的情况,表明这个数是质数,于是将这个数打印出来。

 class Demo3{
     public static void main(String args[]){
         int i,j;
         for(i = 2;i < 100;i++){
             for(j = 2;j < i;j++){
                 if(i % j == 0)
                     break;
             }
             if(j>=i){
                 System.out.print(" "+i);
             }
         }
     }
 }

运行效果:

二、java习题:输出0-100的质数和

 class Demo3{
     public static void main(String args[]){
         int sum = 0;
         int j = 2;
         // 找出1-100的质数之和
         for (int i = 2; i <= 100; i++) { // i值为2,质数为除去1和自身整除的数 j初始值为2去除偶数

             for (j = 2; j < i; j++) { //内层循环遍历查询i的整除数

                 if (i % j == 0) { //判断当前i是否可以整除k值
                     break; //整除则跳出循环
                 }
             }
             //如果当前内循环没有正常结束j与i对比不成立
             if (j >= i) {
                 sum += i; // 累计质数和
                 System.out.println(i); //输出质数
             }
         }
                 System.out.println(sum); //输出质数之和
     }
 }

java中求质数(素数)的问题的更多相关文章

  1. java中求余%与取模floorMod的区别

    初学java的时候接触的%这个符号 百分号? 求余? 取模? 我只知道不是百分号,好像是求余,听别人那叫求模运算符,跟求余一样,于是我便信了. 思考之后开始迷糊,然后经过多次考证得到以下结论. 首先, ...

  2. java中求几个字符串的最大公共子串 使用了比较器Comparator

    package com.swift; import java.util.ArrayList; import java.util.Collections; import java.util.Compar ...

  3. java中求利息的代码

    总结:函数的重要性,懂得用哪一种函数 package com.badu; import java.util.Scanner; //输入存款金额 money.存期 year 和年利率 rate, //根 ...

  4. java中求输入一个数,并计算其平方根~~~

    总结:函数 Math.pow(x,0.5); package com.badu; import java.util.Scanner; // 输入一个数,并计算出平方根 public class AA ...

  5. java中求一下2008年5月31日, 往前倒30天是哪天?

    题目9: 2008年5月31日, 往前倒30天是哪天?  import java.util.*; public class Test {     public static void main(Str ...

  6. [51nod1181]质数中的质数(素数筛法)

    解题关键: 注意下标 #include<bits/stdc++.h> #define maxn 10000002 using namespace std; typedef long lon ...

  7. JAVA中使用递归和尾递归实现1000的阶乘的比较

    在JAVA中求阶乘首先遇到的问题就是结果溢出,不管是使用int还是long,double都无法表示1000!这么大的天文数字,这里暂且用BigInteger解决这个问题! 下面是使用递归和尾递归分别计 ...

  8. HDU 2136 素数打表+求质数因子

    Largest prime factor Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  9. java 数组中求最值

    java中数组求最值,这在实际的开发中差点儿用不到,可是在面试中会偶尔被问到,这是考你主要的思维能力,如今说下这个题的基本思路 思路: 1:先定义一个变量,通常是用数组的第一个值 2:在循环中推断(从 ...

随机推荐

  1. 基于Token认证的多点登录和WebApi保护

    在文章中有错误的地方,或是有建议或意见的地方,请大家多多指正,邮箱: linjie.rd@gmail.com 一天张三,李四,王五,赵六去动物园,张三没买票,李四制作了个假票,王五买了票,赵六要直接F ...

  2. 【JVM虚拟机】(9)-- JVM是如何处理异常的

    [JVM虚拟机](9)-- JVM是如何处理异常的 上篇博客我们简单说过异常信息是存放在属性表集合中的Code属性表里,那么这篇博客就单独讲Code属性表中的exception_table. 在讲之前 ...

  3. asp.net core系列 46 Identity介绍

    一. Identity 介绍 ASP.NET Core Identity是一个会员系统,可为ASP.NET Core应用程序添加登录功能.可以使用SQL Server数据库配置身份以存储用户名,密码和 ...

  4. 微信小程序之滑动日历展示

    滑动日历效果 效果预览 实现要求:顶部固定悬浮的是获取未来一周的日期,分为上下两部分,上面部分显示星期,下面则显示具体日期.今天则显示今天,可点击头部具体日期,可向左向右滑动. 实现代码 顶部日历 页 ...

  5. redis增删查改数据Util

    目录 (1)需要导入的包 (2)redis配置文件 (3)RedisUtil类 (1)需要导入的包 <dependency> <groupId>org.springframew ...

  6. GIS中的坐标系【Esri官方文档部分翻译】

    GCS 地理坐标系(GCS)使用椭圆体表面来定义地球上的位置.地理坐标系有三个部分: 基准面,是地球的椭圆体(椭球体)模型 本初子午线 角度单位 常见基准包括WGS84(用于GPS)和NAD83(用于 ...

  7. openlayers一:显示地图与鼠标地理坐标

    openlayers两个好用的开源JS互动地图库之一,另一个是leaflet. openlayers的特点是是大而全,自身包含绝大多数功能,文档好看. leaflet是小而美,自身小,但支持扩展,好用 ...

  8. iOS----------学习路线思维导图

    UI相关 Runtime OC特性 内存管理 Block 多线程 Runloop 网络相关 设计模式 架构 算法 第三方库

  9. Android6.0 源码修改之Settings音量调节界面增加通话音量调节

    前言 今天客户提了个需求,因为我们的设备在正常情况下无法调节通话音量,只有在打电话过程中,按物理音量加减键才能出现调节通话音量seekBar,很不方便,于是乎需求就来了.需要优化两个地方 1.在正常情 ...

  10. Sql Server 复制数据库

    确实很实用 https://www.cnblogs.com/ggll611928/p/7451558.html