11th August 2023

Write a program which simultaneously writes 200 random odd numbers to one file and 100 random prime number to another file. Make sure that there is no repetition of numbers.
11 Aug 2023
Share

Recent Comments

Furkan says:

import random
import multiprocessing

def generate_odd_numbers(queue, num_to_generate):
odd_numbers = set()
while len(odd_numbers) < num_to_generate:
num = random.randint(1, 1000)
if num % 2 != 0 and num not in odd_numbers:
odd_numbers.add(num)
queue.put(odd_numbers)

def is_prime(num):
if num <= 1:
return False
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return False
return True

def generate_prime_numbers(queue, num_to_generate):
prime_numbers = set()
num = 2
while len(prime_numbers) < num_to_generate:
if is_prime(num):
prime_numbers.add(num)
num += 1
queue.put(prime_numbers)

if __name__ == '__main__':
odd_queue = multiprocessing.Queue()
prime_queue = multiprocessing.Queue()

odd_process = multiprocessing.Process(target=generate_odd_numbers, args=(odd_queue,100))
prime_process = multiprocessing.Process(target=generate_prime_numbers, args=(prime_queue,100))

odd_process.start()
prime_process.start()

odd_process.join()
prime_process.join()

odd_numbers = odd_queue.get()
prime_numbers = prime_queue.get()

with open('odd.txt', 'w') as odd_file:
odd_file.write('\n'.join(map(str, odd_numbers)))

with open('prime.txt', 'w') as prime_file:
prime_file.write('\n'.join(map(str, prime_numbers)))

print("Done")

Uzair says:

import time
import multiprocessing
import random

# ? Write a program which simultaneously writes 200 odd numbers to one file and 100 prime number to another file.


def checkPrime(start_num, end_num, num_limit=100):
with open("prime.txt", "w") as pFile:
remember = []
for _ in range(num_limit):
n = random.randint(start_num, end_num)
if n > 1 and n not in remember:
for i in range(2, n):
if n % i == 0:
break
else:
pFile.write(str(n) + "\n")
pFile.flush()
time.sleep(0.1)
remember.append(n)


def oddNum(start_num, end_num, num_limit=100):
with open("odd.txt", "w") as oFile:
remember = []
for _ in range(num_limit):
n = random.randint(start_num, end_num)
if n % 2 != 0 and n not in remember:
oFile.write(str(n) + "\n")
oFile.flush()
time.sleep(0.1)
remember.append(n)


if __name__ == "__main__":
pOdd = multiprocessing.Process(
target=oddNum,
args=(
0,
200,
200,
),
)
pOdd.start()

pPrime = multiprocessing.Process(
target=checkPrime,
args=(
1,
100,
200,
),
)
pPrime.start()

Leave a Comment