Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm các số từ phạm vi có thừa số nguyên tố chỉ là 2 và 3 trong C ++

Chúng tôi được cung cấp hai số START và END để xác định một dải số. Mục tiêu là tìm các số chỉ có 2 và 3 là thừa số nguyên tố của chúng và nằm trong phạm vi [START, END].

Chúng ta sẽ thực hiện việc này bằng cách duyệt các số từ BẮT ĐẦU đến KẾT THÚC và đối với mỗi số, chúng ta sẽ kiểm tra xem số đó có chia hết cho 2 và 3 hay không. Chia hết thì chia bớt. Nếu không, hãy phá vỡ vòng lặp. Cuối cùng, nếu số giảm xuống 1 thì nó chỉ có 2 và 3 là thừa số của nó.

Hãy cùng hiểu với các ví dụ.

Đầu vào

 START =20 END =25 

Đầu ra

 Các số chỉ có 2 và 3 là thừa số nguyên tố:1 

Giải thích

Thừa số nguyên tố của mỗi số:20 =2 * 2 * 521 =3 * 722 =2 * 1123 =1 * 2324 =2 * 2 * 2 * 325 =5 * 5 Chỉ 24 có 2 và 3 là thừa số nguyên tố.

Đầu vào

 START =1000 END =1500 

Đầu ra

 Các số chỉ có 2 và 3 là thừa số nguyên tố:4 

Giải thích

 1024 1152 1296 1458 là các số chỉ có 2 và 3 là thừa số nguyên tố 

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Chúng tôi lấy số nguyên START và END làm biến phạm vi.

  • Hàm twothreeFactors (int start, int end) nhận các biến phạm vi và trả về tổng số các số có 2 và 3 chỉ là các thừa số nguyên tố.

  • Lấy số lượng biến ban đầu là 0 cho những số như vậy.

  • Dải số theo chiều ngang bằng cách sử dụng vòng lặp for. i =start to i =end

  • Bây giờ, đối với mỗi số num =i, sử dụng vòng lặp while, hãy kiểm tra xem num% 2 ==0, chia nó.

  • nếu num% 3 ==0, hãy chia nó. Nếu không, hãy phá vỡ vòng lặp while

  • Nếu sau vòng lặp while num là 1 thì hãy tăng số lượng.

  • Ở cuối tất cả các vòng đếm sẽ có tổng số chỉ có 2 và 4 là thừa số nguyên tố.

  • Trả về kết quả là số lượng.

Ví dụ

 #include  using namespace std; int twothreeFactors (int start, int end) {// Bắt đầu bằng 2 để 1 không được tính if (start ==1) {start ++; } int count =0; for (int i =start; i <=end; i ++) {int num =i; while (num> 1) {// nếu chia hết cho 2 thì chia hết cho 2 if (num% 2 ==0) {num / =2; } // nếu chia hết cho 3 thì chia hết cho 3 else if (num% 3 ==0) {num / =3; } else // nếu chia hết cho cả 2 và 3 break {break; }} // nghĩa là chỉ 2 và 3 là thừa số của num if (num ==1) {count ++; }} return count;} int main () {int START =10, END =20; cout <<"Các số chỉ có 2 và 3 là thừa số nguyên tố:" < 

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

 Các số chỉ có 2 và 3 là thừa số nguyên tố:3