Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C เป็นจำนวนเฉพาะต่ำสุดและสูงสุดในอาร์เรย์


คำชี้แจงปัญหา

กำหนดอาร์เรย์ของจำนวนเต็มบวก n เราต้องหาไพรม์นัมเบอร์ที่มีค่าต่ำสุดและสูงสุด

หากอาร์เรย์ที่กำหนดคือ −

arr [] ={10, 4, 1, 12, 13, 7, 6, 2, 27, 33}จำนวนเฉพาะขั้นต่ำคือ 2 และจำนวนเฉพาะสูงสุดคือ 13

อัลกอริทึม

<ก่อน>1. ค้นหาจำนวนสูงสุดจากจำนวนที่กำหนด ให้เราเรียกมันว่า maxNumber2 สร้างจำนวนเฉพาะตั้งแต่ 1 ถึง maxNumber และจัดเก็บไว้ในอาร์เรย์ไดนามิก3 วนซ้ำอินพุตอาร์เรย์และใช้ไดนามิกอาร์เรย์เพื่อค้นหาจำนวนเฉพาะที่มีค่าต่ำสุดและสูงสุด

ตัวอย่าง

#include #include #include #define SIZE(arr) (sizeof(arr) / sizeof(arr[0])) โดยใช้เนมสเปซ std;void printMinAndMaxPrimes(int *arr, int n){ int maxNumber =*max_element(arr, arr + n); vector จำนวนเฉพาะ (maxNumber + 1, จริง); ไพรม์[0] =ไพรม์[1] =เท็จ; สำหรับ (int p =2; p * p <=maxNumber; ++i) { if (primes [p])) { สำหรับ (int i =p * 2; i <=maxNumber; i +=p) { เฉพาะ [p ] =เท็จ; } } } int minPrime =INT_MAX; int maxPrime =INT_MIN; สำหรับ (int i =0; i  

ผลลัพธ์

เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้น มันสร้างผลลัพธ์ต่อไปนี้ -

จำนวนเฉพาะของค่าต่ำสุด =2จำนวนเฉพาะของค่าสูงสุด =13