Skip to Main Content

Java Programming

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Goldbach's Conjecture implementation in pl sql help request

IKNov 27 2022

Hi,
I have this javascript code of Goldbach's Conjecture method, can someone help with its implementation in oracle plsql.
javascript code
<script>
// Javascript program to implement Goldbach's
// conjecture
let MAX = 10000;

// Array to store all prime less than
// and equal to 10^6
let primes = new Array();

// Utility function for Sieve of Sundaram
function sieveSundaram()
{
// In general Sieve of Sundaram, produces
// primes smaller than (2*x + 2) for a
// number given number x. Since we want
// primes smaller than MAX, we reduce
// MAX to half. This array is used to
// separate numbers of the form i + j + 2*i*j
// from others where 1 <= i <= j
let marked = new Array(parseInt(MAX / 2) + 100).fill(false);

// Main logic of Sundaram. Mark all
// numbers which do not generate prime
// number by doing 2*i+1
for (let i = 1; i <= (Math.sqrt(MAX) - 1) / 2; i++)
for (let j = (i * (i + 1)) << 1;
j <= MAX / 2; j = j + 2 * i + 1)
marked[j] = true;

// Since 2 is a prime number
primes.push(2);

// Print other primes. Remaining primes
// are of the form 2*i + 1 such that
// marked[i] is false.
for (let i = 1; i <= MAX / 2; i++)
if (marked[i] == false)
primes.push(2 * i + 1);
}

// Function to perform Goldbach's conjecture
function findPrimes(n)
{
// Return if number is not even
// or less than 3
if (n <= 2 || n % 2 != 0)
{
document.write("Invalid Input <br>");
return;
}

// Check only upto half of number
for (let i = 0; primes[i] <= n / 2; i++)
{
// find difference by subtracting
// current prime from n
let diff = n - primes[i];

// Search if the difference is also a
// prime number
if (primes.includes(diff))
{
// Express as a sum of primes
document.write(primes[i] + " + " + diff + " = " + n + "<br>");
return;
}
}
}

// Driver code

// Finding all prime numbers before limit
sieveSundaram();

// Express number as a sum of two primes
findPrimes(4);
findPrimes(38);
findPrimes(100);

// This code is contributed by gfgking
</script>
Output:  

2 + 2 = 4
7 + 31 = 38
3 + 97 = 100
Comments
Post Details
Added on Nov 27 2022
0 comments
147 views