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()
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)
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()