素数输出

(1)计算并输出3~100之间的素数。

2)编程满足下列要求:

 1)按照每行5个输出;

 2)输出任意两个整数之间的所有素数;

 3)输入两个整数,输出这两个整数之间的最大的10个和最小的10个素数。

  1 package 素数;
  2 import java.util.*;
  3 public class Sushu {
  4     static Scanner  x=new Scanner(System.in); 
  5     public void menu1() {
  6         int j;
  7         int count=0;
  8         System.out.println("3~100之间的素数");
  9         for (int i = 3; i <= 100; i++) // 数从3开始循环
 10         {           
 11             for(j = 2;j<=Math.sqrt(i);j++)
 12                 if(i%j==0)break;
 13             if(j>Math.sqrt(i))
 14             {
 15                 count++;
 16                 if(count%5==0) {//控制每行输出5个素数
 17                      System.out.print(i);
 18                      System.out.print("\n");
 19                 }
 20                 else System.out.print(i+" "); // 如果是就打印出数字
 21             }
 22         } 
 23         System.out.println("\n");
 24     }
 25     public void menu2() {
 26         int j,a,b;
 27         int count=0;        
 28         System.out.println("请输入两个任意的正整数,前者小与后者:");
 29         a=x.nextInt();
 30         b=x.nextInt();
 31         for (int i = a; i <= b; i++) // 数从3开始循环
 32         {
 33             for(j = 2;j<=Math.sqrt(i);j++)
 34                 if(i%j==0)break;
 35             if(j>Math.sqrt(i)&&i!=0&&i!=1)
 36             {
 37                 count++;
 38                 if(count%5==0) {//控制每行输出5个素数
 39                      System.out.print(i);
 40                      System.out.print("\n");
 41                 }
 42                 else System.out.print(i+" "); // 如果是就打印出数字
 43             }
 44         }
 45         System.out.println("\n");
 46     }
 47     public void menu3() {
 48         int j,a,b;
 49         int count=0;
 50         int m[]=new int[1000];
 51         System.out.println("请输入两个任意的整数,前者小与后者:");
 52         a=x.nextInt();
 53         b=x.nextInt();
 54         for (int i = a; i <= b; i++) // 数从3开始循环
 55         {
 56             for(j = 2;j<=Math.sqrt(i);j++)
 57                 if(i%j==0)break;
 58             if(j>Math.sqrt(i)&&i!=0&&i!=1)
 59             {
 60                 m[count]=i;
 61                 count++;                
 62             }           
 63         }
 64         System.out.println(a+"与"+b+"之间最小的10个素数:");
 65       for(int k=0;k<10;k++) {
 66         if(k%5==0&&k!=0) {//控制每行输出5个素数
 67             System.out.print("\n");
 68         }
 69              System.out.print(m[k]+" ");
 70     }
 71       int cn=0;
 72       System.out.print("\n"+a+"与"+b+"之间最大的10个素数:");
 73       for(int p=count-10;p<count;p++) {          
 74           if(cn%5==0) {//控制每行输出5个素数
 75               System.out.print("\n");
 76           }
 77                System.out.print(m[p]+" ");
 78               cn++;
 79       }
 80       System.out.println("\n");
 81     }
 82     public void menu() {
 83         System.out.println("            素数系统");
 84         System.out.println("1.3~100之间的素数,每行5个输出");
 85         System.out.println("2.任意两个整数之间的所有素数,每行5个输出");
 86         System.out.println("3.两个整数之间的最大的10个和最小的10个素数,每行5个输出");
 87         System.out.println("0.退出");
 88         System.out.print("   请选择:");
 89     }
 90     public static void main(String[] args) {
 91         Sushu a=new Sushu();
 92         for(; ;) {
 93             a.menu();
 94             int N=x.nextInt();
 95             switch(N) {
 96             case 1:a.menu1();break;
 97             case 2:a.menu2();break;
 98             case 3:a.menu3();break;
 99             case 0:break;
100             }
101         }
102         
103     }
104 }

结果截图:

posted @ 2018-10-14 17:54  _小白兔  阅读(859)  评论(0编辑  收藏  举报