Advertisement
Go-Ice

Sophomore Java Homework-P4.18 v2

Oct 14th, 2014
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.62 KB | None | 0 0
  1. /**
  2.  * Name: Prime numbers-loop method
  3.  * @author LinChuWen
  4.  * Date: 2014.10.14
  5.  *
  6.  * NCHU EE,course number:2335
  7.  * course name: Object Oriented Language
  8.  * Textbook: Big Java:Late Objects-Cay S. Horstmann
  9.  * Problem: P4.18
  10.  * Description: Enter an integer "n", then prints out all prime numbers up to that integer.
  11.  */
  12. import java.util.*;
  13. public class HW3_P4_18_v2 {
  14.    
  15.     public static void main(String[] args) {
  16.         Scanner input = new Scanner(System.in);
  17.         int n,n_sqrt;
  18.         int dividend,divisor;
  19.         boolean prime;
  20.        
  21.         System.out.print("Please enter an integer: ");
  22.        
  23.         while(input.hasNext()){
  24.             n=input.nextInt();
  25.             n_sqrt=(int)Math.sqrt(n);
  26.            
  27.             if(n<0){
  28.                 System.out.println("Please enter a positive integer!");
  29.                 System.out.print("Please enter an integer: ");
  30.                 continue;
  31.             } //if end
  32.            
  33.             else if(n>=0 && n<4){
  34.                 if(n==0 || n==1)
  35.                     System.out.println("No prime numbers up to " + n);
  36.                 else if(n==2)
  37.                     System.out.println(2);
  38.                 else if(n==3)
  39.                     System.out.printf("2\n3\n");
  40.                
  41.                 System.out.print("Please enter an integer: ");
  42.                 continue;
  43.             } //else if end
  44.            
  45.             else{
  46.                 System.out.printf("2\n3\n");
  47.                 for(dividend=5;dividend<=n;dividend+=2){
  48.                     prime=true;
  49.                     for(divisor=3;divisor<=n_sqrt;divisor+=2){
  50.                         if(dividend%divisor==0 && dividend!=divisor){
  51.                             prime=false;
  52.                             break;
  53.                         } //if end
  54.                     } //small for end
  55.                    
  56.                     if(prime)
  57.                         System.out.println(dividend);
  58.                 } //big for end
  59.             } //else end
  60.            
  61.             System.out.print("Please enter an integer: ");
  62.            
  63.         } //while end
  64.        
  65.         input.close();
  66.     } //main end
  67. } //class end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement