Advertisement
Guest User

IteratingProgram

a guest
Jul 15th, 2014
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.81 KB | None | 0 0
  1. package primeIteration;
  2.  
  3. import java.io.FileNotFoundException;
  4. import java.io.PrintWriter;
  5. import java.io.UnsupportedEncodingException;
  6. import java.util.ArrayList;
  7.  
  8. public class PrimeFunctionIterate {
  9.  
  10.     public static void main(String[] args) {       
  11.         PrintWriter writ = null;
  12.         try {
  13.             writ = new PrintWriter("nums.txt", "UTF-8");
  14.         } catch (FileNotFoundException e) {
  15.             e.printStackTrace();
  16.         } catch (UnsupportedEncodingException e) {
  17.             e.printStackTrace();
  18.         }
  19.        
  20.         for(int k=2; k < 10001; ++k){
  21.             int num2 = 0;
  22.             for(int i=1; i < k; ++i){
  23.                 int end = i;
  24.                 while(!(end < 10 && (isPrime(end) || end ==1))){
  25.                     end = function(end);
  26.                 }
  27.                 if(end ==2) ++ num2;   
  28.             }
  29.             double dub = (double)num2/(double)k;
  30.             writ.println(dub);
  31.         }      
  32.     }
  33.    
  34.     public static boolean isPrime(int n){
  35.         for(int i=2; i < n/2+1; ++i){
  36.             if(n % i == 0){
  37.                 return false;
  38.             }
  39.         }
  40.         return true;
  41.     }
  42.    
  43.     public static int function(int n){
  44.         if(isPrime(n)){
  45.             return sumDigits(n);
  46.         }
  47.         else return sumFactors(n);
  48.     }
  49.    
  50.     public static int sumDigits(int n){
  51.         String num = Integer.toString(n);
  52.         int sum = 0;
  53.         for(int i=0; i < num.length(); ++i){
  54.             sum += Integer.parseInt(num.substring(i, i+1));
  55.         }
  56.         return sum;
  57.     }
  58.    
  59.     public static ArrayList<Integer> factorList(int n){
  60.         ArrayList<Integer> factors = new ArrayList<Integer>();
  61.         if(isPrime(n)){
  62.             ArrayList<Integer> single = new ArrayList<Integer>();
  63.             single.add(n);
  64.             return single;
  65.         }
  66.        
  67.         for(int i=2; i < n/2; ++i){
  68.             if(n % i == 0){
  69.                 factors.add(i);
  70.                 factors.addAll(factorList(n/i));
  71.                 break;
  72.             }
  73.         }
  74.        
  75.         return factors;
  76.     }
  77.    
  78.     public static int sumFactors(int n){
  79.         int sum = 0;
  80.         ArrayList<Integer> factors = factorList(n);
  81.         for(int i=0; i<factors.size(); ++i){
  82.             sum += factors.get(i);
  83.         }
  84.         return sum;
  85.     }
  86.  
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement