zoukankan      html  css  js  c++  java
  • java中求质数(素数)的问题。

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

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

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

     代码如下:

    复制代码
     1 class Demo2{
     2     public static void main(String args[]){
     3         //1既不是质数也不是和数,使用i从2开始。
     4         for(int i=2;i<=1000;i++){
     5             boolean flag = true;
     6             for(int j = 2;j < i;j++){
     7                 if(i % j==0){
     8                     flag = false;
     9                     break;//到了1000内的质数,就跳出循环,并输出结果。
    10                 }
    11             }
    12             if(flag){
    13                 System.out.print(" "+i);
    14             }
    15         }
    16     }
    17 }
    复制代码

    运行效果:

     第二种思路:

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

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

    复制代码
     1 class Demo3{
     2     public static void main(String args[]){
     3         int i,j;
     4         for(i = 2;i < 100;i++){
     5             for(j = 2;j < i;j++){
     6                 if(i % j == 0)
     7                     break;
     8             }
     9             if(j>=i){
    10                 System.out.print(" "+i);
    11             }
    12         }
    13     }
    14 }
    复制代码

     运行效果:

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

    复制代码
     1 class Demo3{
     2     public static void main(String args[]){
     3         int sum = 0;
     4         int j = 2;
     5         // 找出1-100的质数之和
     6         for (int i = 2; i <= 100; i++) { // i值为2,质数为除去1和自身整除的数 j初始值为2去除偶数
     7 
     8             for (j = 2; j < i; j++) { //内层循环遍历查询i的整除数
     9 
    10                 if (i % j == 0) { //判断当前i是否可以整除k值
    11                     break; //整除则跳出循环
    12                 }
    13             }
    14             //如果当前内循环没有正常结束j与i对比不成立
    15             if (j >= i) { 
    16                 sum += i; // 累计质数和
    17                 System.out.println(i); //输出质数
    18             }
    19         }
    20                 System.out.println(sum); //输出质数之和
    21     }
    22 }
  • 相关阅读:
    C# 窗体间传值方法大汇总(转)
    STM32 配置PC13~PC15
    STM32的USART发送数据时如何使用TXE和TC标志
    STM32_NVIC寄存器详解
    protel99se 问题汇总(不定期更新)
    STM32串口IAP实验笔记
    Keil MDK下如何设置非零初始化变量(复位后变量值不丢失)
    STM32定时器配置(TIM1-TIM8)高级定时器+普通定时器,定时计数模式下总结
    帮助类-AD域操作
    GitHub贡献第一的公司是谁?微软开源软件列表
  • 原文地址:https://www.cnblogs.com/zxl934734463/p/10844927.html
Copyright © 2011-2022 走看看