คำอธิบาย
ในทางคณิตศาสตร์ จำนวนเฉพาะของ Mersenne เป็นจำนวนเฉพาะที่น้อยกว่ากำลังสอง นั่นคือ เป็นจำนวนเฉพาะของรูปแบบ Mn =2n − 1 สำหรับจำนวนเต็ม n บางตัว
เขียนโปรแกรม C++ เพื่อพิมพ์ Mersenne Primes ทั้งหมดที่มีขนาดเล็กกว่าอินพุตจำนวนเต็มบวกอินพุต n
เลขชี้กำลัง n ซึ่งระบุจำนวนเฉพาะของ Mersenne คือ 2, 3, 5, 7,... และจำนวนเฉพาะของ Mersenne ที่ได้คือ 3, 7, 31, 127
อัลกอริทึม
<ก่อน>1. สร้างจำนวนเฉพาะทั้งหมดที่น้อยกว่าหรือเท่ากับจำนวนที่กำหนด n2 วนซ้ำตัวเลขทั้งหมดของแบบฟอร์ม 2n-1 และตรวจสอบว่าเป็นจำนวนเฉพาะหรือไม่ตัวอย่าง
#include#include using เนมสเปซ std;void generatePrimes(bool *primes, int n){ เติม (primes, จำนวนเฉพาะ + n + 1, จริง); สำหรับ (int p =2; p * p <=n; ++p) { if (primes [p] ==true) { สำหรับ (int i =p * 2; i <=n; i +=p) { ไพรม์[i] =เท็จ; } } }}เป็นโมฆะ mersennePrimes(int n){ บูลไพรม์[n + 1]; สร้างPrimes(primes, n); สำหรับ (int i =2; ((1 < ผลลัพธ์
เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้น มันสร้างผลลัพธ์ต่อไปนี้ -
Mersenne กำหนดตัวเลขจนถึง 1003 7 31