Issue #29407: Remove redundant ensure_future() calls in factorial example
diff --git a/Doc/library/asyncio-task.rst b/Doc/library/asyncio-task.rst
index 9bff1c4..90cb9c3 100644
--- a/Doc/library/asyncio-task.rst
+++ b/Doc/library/asyncio-task.rst
@@ -472,21 +472,20 @@
 
     import asyncio
 
-    @asyncio.coroutine
-    def factorial(name, number):
+    async def factorial(name, number):
         f = 1
         for i in range(2, number+1):
             print("Task %s: Compute factorial(%s)..." % (name, i))
-            yield from asyncio.sleep(1)
+            await asyncio.sleep(1)
             f *= i
         print("Task %s: factorial(%s) = %s" % (name, number, f))
 
     loop = asyncio.get_event_loop()
-    tasks = [
-        asyncio.ensure_future(factorial("A", 2)),
-        asyncio.ensure_future(factorial("B", 3)),
-        asyncio.ensure_future(factorial("C", 4))]
-    loop.run_until_complete(asyncio.gather(*tasks))
+    loop.run_until_complete(asyncio.gather(
+        factorial("A", 2),
+        factorial("B", 3),
+        factorial("C", 4),
+    ))
     loop.close()
 
 Output::