Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

REG NO:41409104030

CODING:
FibonacciGenerator.java
import java.io.IOException;
mport java.io.PipedWriter;
public class FibonacciGenerator extends Thread
{
private PipedWriter fibWriter=new PipedWriter();
public PipedWriter getPipedWriter()
{
return fibWriter;
}
public void run()
{
super.run();
generateFibonacci();
}
private int f(int n)
{
if(n<2)
{
return n;
}
else
{
return f(n-1)+f(n-2);
}
}
public void generateFibonacci()
{
for(int i=2,fibValue=0;(fibValue=f(i))<100000;i++)
{
try
{
fibWriter.write(fibValue);
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
public static void main(String[] args)

REG NO:41409104030
{
new FibonacciGenerator().generateFibonacci();
}
}
Main.java
import java.io.IOException;
public class Main
{
public static void main(String[] args)throws IOException
{
FibonacciGenerator fibonacciGenerator =new FibonacciGenerator ();
PrimeGenerator primeGenerator=new PrimeGenerator();
Receiver receiver=new Receiver(fibonacciGenerator,primeGenerator);
fibonacciGenerator.start();
primeGenerator.start();
receiver.start();
}
}

PrimeGenerator.java
import java.io.IOException;
import java.io.PipedWriter;
public class PrimeGenerator extends Thread
{
private PipedWriter primeWriter=new PipedWriter();
public PipedWriter getPipedWriter()
{
return primeWriter;
}
public void run()
{
super.run();
generatePrime();
}
public void generatePrime()
{
for(int i=2;i<100000;i++)
{
if(isPrime(i))
{
try

REG NO:41409104030
{
primeWriter.write(i);
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
}
private boolean isPrime(int n)
{
boolean prime=true;
int sqrtValue=(int)Math.sqrt(n);
for(int i=2;i<=sqrtValue;i++)
{
if(n%i==0)
{
prime=false;
}
}
return prime;
}
public static void main(String[] args)throws IOException
{
PrimeGenerator gene=new PrimeGenerator();
gene.generatePrime();
}
}

Receiver.java
import java.io.IOException;
import java.io.PipedReader;
class Receiver extends Thread
{
private PipedReader fibReader;
private PipedReader primeReader;
public Receiver(FibonacciGenerator fib,PrimeGenerator prime)throws IOException
{
fibReader=new PipedReader(fib.getPipedWriter());
primeReader=new PipedReader(prime.getPipedWriter());
}
public void run()
{

REG NO:41409104030
int prime=0;
int fib=0;
try
{
prime=primeReader.read();
fib=fibReader.read();
}
catch(IOException e1)
{
e1.printStackTrace();
}
while(true)
{
try
{
if(prime==fib)
{
System.out.println("MATCH :: "+prime);
prime=primeReader.read();
fib=fibReader.read();
}
else if(fib<prime)
{
fib=fibReader.read();
}
else
{
prime=primeReader.read();
}
}
catch(IOException e)
{
System.exit(-1);
}
}
}
}

You might also like