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

ค้นหาช่วงของจำนวนรวมของความยาวที่กำหนดใน C++


สมมติว่าเรามีตัวเลข n เราต้องหาพิสัยของจำนวนเต็มบวก โดยที่ตัวเลขทั้งหมดในช่วงนั้นประกอบกัน และความยาวของช่วงคือ n หากมีมากกว่าหนึ่งช่วง ให้พิมพ์ช่วงใดช่วงหนึ่ง จำนวนประกอบเป็นตัวเลขที่มีตัวหารอย่างน้อยหนึ่งตัวนอกเหนือจาก 1 และตัวมันเอง

เนื่องจากความยาวของช่วงคือ n ดังนั้นหากตัวเลขแรกคือ a ดังนั้นตัวเลขอื่นๆ ก็คือ a + 1, a + 2, …, a + n – 1 ทั้งหมดควรประกอบเข้าด้วยกัน ถ้าเราเห็นว่า x! โดยที่ x เป็นจำนวนเต็มบวก แล้ว x มีตัวประกอบเป็น 2, 3, 4, …, p – 1 ดังนั้น p! + ฉันมีปัจจัย i ดังนั้น p! + ฉันต้องผสม พี! + 2 พี! + 3, … หน้า! + p – 1 เป็นส่วนประกอบทั้งหมด ดังนั้นช่วงจะเป็น [p! + 2 พี! + p – 1]

ตัวอย่าง

#include<iostream>
using namespace std;
int fact (int n) {
   if (n == 0)
      return 1;
   return n * fact(n-1);
}
void showRange(int n) {
   int a = fact(n + 2) + 2;
   int b = a + n - 1;
   cout << "[" << a << ", " << b << "]";
}
int main() {
   int n = 3 ;
   showRange(n);
}

ผลลัพธ์

[122, 124]