about summary refs log tree commit diff
path: root/daily/287easy/kaprekar.c
diff options
context:
space:
mode:
Diffstat (limited to 'daily/287easy/kaprekar.c')
-rw-r--r--daily/287easy/kaprekar.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/daily/287easy/kaprekar.c b/daily/287easy/kaprekar.c
index 3121d88..0cf1bf6 100644
--- a/daily/287easy/kaprekar.c
+++ b/daily/287easy/kaprekar.c
@@ -40,19 +40,14 @@ short desc_digits(short n)
 	return a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
 }
 
-short asc_digits(short n)
-{
-	sort_digits(n);
-
-	return a[3] * 1000 + a[2] * 100 + a[1] * 10 + a[0];
-}
-
 unsigned long long kaprekar(short n)
 {
 	char i;
 
-	for (i = 0; n ^ 6174; i++)
-		n = desc_digits(n) - asc_digits(n);
+	for (i = 0; n ^ 6174; i++) {
+		sort_digits(n);
+		n = (a[0] - a[3]) * 999 + (a[1] - a[2]) * 90;
+	}
 
 	return i;
 }