summaryrefslogtreecommitdiff
path: root/AlgoDesignAndTechniqueEdxPython/sources/lastdigitoffibsum.py
diff options
context:
space:
mode:
Diffstat (limited to 'AlgoDesignAndTechniqueEdxPython/sources/lastdigitoffibsum.py')
-rw-r--r--AlgoDesignAndTechniqueEdxPython/sources/lastdigitoffibsum.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/AlgoDesignAndTechniqueEdxPython/sources/lastdigitoffibsum.py b/AlgoDesignAndTechniqueEdxPython/sources/lastdigitoffibsum.py
new file mode 100644
index 0000000..b48748e
--- /dev/null
+++ b/AlgoDesignAndTechniqueEdxPython/sources/lastdigitoffibsum.py
@@ -0,0 +1,33 @@
+# Uses python3
+import sys
+
+FIB_PISANO_PERIOD_FOR_TEN = 60;
+def getFibNModM(n):
+ r = n % FIB_PISANO_PERIOD_FOR_TEN
+ if r==0:
+ return 0
+ firstN = 0
+ secondN = 1
+ tempHolder = 1
+
+ for _ in range(2, r + 1):
+ tempHolder = (firstN + secondN) % 10;
+ firstN = secondN
+ secondN = tempHolder
+# return getFibOptimized(n % p) % m
+ return secondN
+
+
+def getLastDigit(n):
+ if n<=1:
+ return n
+ result = getFibNModM(n+2)
+ if result==0:
+ return 9
+ else:
+ return result -1
+
+if __name__ == '__main__':
+ input = sys.stdin.read()
+ n = int(input)
+ print(getLastDigit(n)) \ No newline at end of file