Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: mọi người cho em hỏi cái nto = (a[i]<2) ? 0 : 1 chỗ a[i]<2 ấy em vẫn không hiểu tại sao có ai giải thích dùm không ạ?

  1. #1
    Ngày gia nhập
    09 2014
    Bài viết
    0

    Mặc định mọi người cho em hỏi cái nto = (a[i]<2) ? 0 : 1 chỗ a[i]<2 ấy em vẫn không hiểu tại sao có ai giải thích dùm không ạ?

    //dem so luong so nguyen to co trong mang
    dem = 0;
    for (i = 0; i<n; i++)
    {
    // kiem tra xem a[i] co phai la so nguyen to hay ko
    nto = (a[i]<2) ? 0 : 1;
    for (j = 2; j<a[i]; j++)
    if (a[i] % j == 0) // chia het
    {
    nto = 0;
    break;
    }
    if (nto == 1) // a[i] la so nguyen to
    dem++;
    }
    cout << "SL so nguyen to = " << dem << endl;

  2. #2
    Ngày gia nhập
    08 2011
    Bài viết
    27

    - bài này người code phân các số làm 2 loại:
    + loại 1: các số a[i] nhỏ hơn 2 => kết luận luôn là không phải số nguyên tố, gán nto = 0, sau đó chạy đến hàm for thì với j=2 thì điều kiện j<a[i] không bao giờ xảy ra nên thực tế là nó không thực hiện mấy cái trong ngoặc của vòng for này => nhảy tiếp xuống dưới thấy nto =0 nên ko tăng biến đếm và nhảy sang vòng for kiểm tra tiếp a[i+1]
    + loại 2: các số lớn hơn 2, loại này thì đếm số ước của nó để xem có phải số nguyên tố ko, nếu phải thì tăng biến đếm lên 1

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn