Monday, July 2, 2018

Boost the speed of calculating Large Primes with Golang

Following points are used

1. Check whether the last digit of the integer can be divided by 2 or not
2. Check whether the sum of all digits of the integer can be divided by 3 or not
3. Check whether the last digit of the integer can be divided by 5 or not
4. If all the above checks fails Check whether there is an integer from 7 to square root of number which is divide the number




package main import ( "fmt" "math" "strconv" ) func main() { fmt.Printf("275489 is a prime : %t", isPrime(275489)) } func isPrime(num int) bool { if !canBeDivideBy2(num) && !canBeDivideBy3(num) && !canBeDivideBy5(num) { isPrime := true //If the number can not be divided by 2, 3 or 5 divide from 7 to squre root of the number to check the existence of a factor for i := 7; i <= int(math.Sqrt(float64(num))); i++ { if num%i == 0 { isPrime = false break } } return isPrime } return false } // If the last digit can be divided by 2 whole number can be divided by 2 func canBeDivideBy2(num int) bool { numAsStr := strconv.Itoa(num) lastNum, _ := strconv.Atoi(string(numAsStr[len(numAsStr)-1])) return lastNum%2 == 0 } // If the digit sum can be divided by 3 whole number can be divided by 3 func canBeDivideBy3(num int) bool { numAsStr := strconv.Itoa(num) sum := 0 for i := 0; i < len(numAsStr); i++ { iThNum, _ := strconv.Atoi(string(numAsStr[i])) sum += iThNum } return sum%3 == 0 } //If the last digit can be divided by 5 whole number can be divided by 5 func canBeDivideBy5(num int) bool { numAsStr := strconv.Itoa(num) lastNum, _ := strconv.Atoi(string(numAsStr[len(numAsStr)-1])) return lastNum%5 == 0 }

Check last JRE access time

JRE will create and update a file in a directory called oracle_jre_usage located  in
  • Windows : %ProgramData%\Oracle\Java\.oracle_jre-usage\ 
  • All other operating systems: ${user.home}/.oracle_jre_usage/
ex: I have used ubuntu 18.04. So when I start intellij idea it will create a file like  below

lakshman@lakshman-Latitude-3580:~/.oracle_jre_usage$ vim 9e360713136aba0a.timestamp

File content is as follows

/usr/lib/jvm/java-8-oracle/jre
1530512372457
~       

As you can see the last access time can be found in timestamp format.

From JDK 8u171 and later updates and JDK 10 and later, usage tracking can be disabled by using jdk.disableLastUsageTracking property.

ex: java -Djdk.disableLastUsageTracking=true -jar lastUsageTracking-executable.jar

How to choose IP address range for resources for AWS virtual private cloud

You will often need to allocate  an IP address range when you design the network of an AWS VPC. Since VPC is a small network of resources(E...