From f4fc6903ab88126ff442a92e11c23f8952f73029 Mon Sep 17 00:00:00 2001
From: aditiagarwal34550 <aditiagarwal34550@gmail.com>
Date: Fri, 5 Jul 2019 03:04:47 -0700
Subject: [PATCH 1/2] adding project Euler problems in the folder Project Euler

---
 src/main/scala/ProjectEuler/Euler1.scala | 18 ++++++++++++++++
 src/main/scala/ProjectEuler/Euler2.scala | 27 ++++++++++++++++++++++++
 src/main/scala/ProjectEuler/Euler3.scala | 22 +++++++++++++++++++
 src/main/scala/ProjectEuler/Euler4.scala | 21 ++++++++++++++++++
 4 files changed, 88 insertions(+)
 create mode 100644 src/main/scala/ProjectEuler/Euler1.scala
 create mode 100644 src/main/scala/ProjectEuler/Euler2.scala
 create mode 100644 src/main/scala/ProjectEuler/Euler3.scala
 create mode 100644 src/main/scala/ProjectEuler/Euler4.scala

diff --git a/src/main/scala/ProjectEuler/Euler1.scala b/src/main/scala/ProjectEuler/Euler1.scala
new file mode 100644
index 0000000..a469668
--- /dev/null
+++ b/src/main/scala/ProjectEuler/Euler1.scala
@@ -0,0 +1,18 @@
+package ProjectEuler
+
+object Euler1 {
+    /** 
+	*Problem Statement : If we list all the natural numbers
+	* below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9.
+	*The sum of these multiples is 23.
+ 
+	*Find the sum of all the multiples of 3 or 5 below 1000.
+
+    **/
+
+    def main (args : Array[String]) {
+        val sum = (1 until 1000).filter(n => n % 3 == 0 || n % 5 == 0).sum
+        println(sum)
+    }   
+}
+
diff --git a/src/main/scala/ProjectEuler/Euler2.scala b/src/main/scala/ProjectEuler/Euler2.scala
new file mode 100644
index 0000000..15bb98e
--- /dev/null
+++ b/src/main/scala/ProjectEuler/Euler2.scala
@@ -0,0 +1,27 @@
+package ProjectEuler
+
+object Euler2 {
+    /** 
+	*Problem Statement : Each new term in the Fibonacci sequence
+	*is generated by adding the previous two terms. 
+	*By starting with 1 and 2, the first 10 terms will be:
+
+	*1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
+
+	*By considering the terms in the Fibonacci sequence whose 		*values do not exceed four million,
+	*find the sum of the even-valued terms.
+
+    **/
+
+    def nextFib(x: Int, y: Int): Stream[Int] = { 
+        x #:: nextFib(y, x+y)
+    }
+  
+    def fib = nextFib(1,1)
+  
+    def main (args : Array[String]) {
+        println(fib.takeWhile(_ <= 4000000).filter(_ % 2 == 0).sum)
+    }
+ 
+}
+
diff --git a/src/main/scala/ProjectEuler/Euler3.scala b/src/main/scala/ProjectEuler/Euler3.scala
new file mode 100644
index 0000000..7575e68
--- /dev/null
+++ b/src/main/scala/ProjectEuler/Euler3.scala
@@ -0,0 +1,22 @@
+package ProjectEuler
+
+object Euler3 {
+    /** 
+	*Problem Statement : The prime factors of 13195 are 5, 7, 13 and 29.
+
+	*What is the largest prime factor of the number 600851475143 ?
+
+    **/
+
+	def primeFactors(num: Long): List[Long] = {
+            val exists = (2L to math.sqrt(num).toLong).find(num % _ == 0)
+            exists match {
+		case None => List(num)
+                case Some(d) => d :: primeFactors(num/d)
+            }
+    }
+
+	def main(args : Array[String]) {
+	    println(primeFactors(600851475143L).last)
+        }
+}
diff --git a/src/main/scala/ProjectEuler/Euler4.scala b/src/main/scala/ProjectEuler/Euler4.scala
new file mode 100644
index 0000000..7faace9
--- /dev/null
+++ b/src/main/scala/ProjectEuler/Euler4.scala
@@ -0,0 +1,21 @@
+package ProjectEuler
+
+object Euler4 {
+    /** 
+	*Problem Statement : A palindromic number reads the same both ways.
+	*The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
+
+	*Find the largest palindrome made from the product of two 3-digit numbers.
+
+    **/
+	def isPalindrome(num: Int): Boolean = {
+	    val numString = num.toString
+	    numString == numString.reverse
+	}
+
+	def main(args : Array[String]){
+	    val palindromes = for (x <- 100 to 999; y <- 100 to 999 if (isPalindrome(x * y))) yield x*y
+	    println(palindromes.max)
+	}
+}
+

From 5cda4ec6332eceeda959dfc32ced0301c814b7fb Mon Sep 17 00:00:00 2001
From: Aditi Agarwal <31546143+aditiagarwal34550@users.noreply.github.com>
Date: Fri, 5 Jul 2019 17:47:59 +0530
Subject: [PATCH 2/2] Update Euler3.scala

---
 src/main/scala/ProjectEuler/Euler3.scala | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/scala/ProjectEuler/Euler3.scala b/src/main/scala/ProjectEuler/Euler3.scala
index 7575e68..f4da397 100644
--- a/src/main/scala/ProjectEuler/Euler3.scala
+++ b/src/main/scala/ProjectEuler/Euler3.scala
@@ -14,7 +14,7 @@ object Euler3 {
 		case None => List(num)
                 case Some(d) => d :: primeFactors(num/d)
             }
-    }
+    	}
 
 	def main(args : Array[String]) {
 	    println(primeFactors(600851475143L).last)