Trang chủ Tin Học Lớp 8 Tìm số nguyên tố c++ Hãy tìm tất cả các...

Tìm số nguyên tố c++ Hãy tìm tất cả các số nguyên tố trong đoạn [A;B] Dữ liệu vào Gồm 2 số nguyên A; B cách nhau bởi 1 dấu cách (1≤A≤B≤107) Kết quả Ghi ra tất

Câu hỏi :

Tìm số nguyên tố c++ Hãy tìm tất cả các số nguyên tố trong đoạn [A;B] Dữ liệu vào Gồm 2 số nguyên A; B cách nhau bởi 1 dấu cách (1≤A≤B≤107) Kết quả Ghi ra tất cả các số nguyên tố trong khoảng [A;B]. Mỗi số trên 1 dòng. Sample Input 1 1 10 Sample Output 1 2 3 5 7

Lời giải 1 :

code bị TLE 

#include<bits/stdc++.h>
using namespace std;
int main()
{
 int a,b;
 cin>>a>>b;
 if (a==1) a++;
 for (int i=a ;i<=b ;i++)
 {
  bool f=true;
  for (int e=2 ;e<i; e++)
  {
   if ( i%e==0)
   {
    f=false;
    break;
   }
  }
  if (f==true) cout<<i<<endl;
 }
}

code bị TLE test 19

#include<bits/stdc++.h>
using namespace std;
int main()
{
 int a,b;
 cin>>a>>b;
 if (a==1) a++;
 for (int i=a ;i<=b ;i++)
 {
  bool f=true;
  for (int e=2;e<=sqrt(i);e++)
  {
   if ( i%e==0)
   {
    f=false;
    break;
   }
  }
  if (f==true) cout<<i<<endl;
 }
}

code Full AC (sử dụng sàng)

#include<bits/stdc++.h>
using namespace std;
int main()
{
 int a,b;
 cin>>a>>b;
 bool check [b+1];
 fill(check,check+1+b,true);
 check[1]=false;
 for (int i=2;i*i<=b;i++)
 {
  if (check[i]== true){
   for (int y=i*i ;y<=b ;y=y+i) check[y]=false;
  }
 }
 for (int i=a;i<=b;i++) 
 if (check[i]==true) cout<<i<<endl;
}

Thảo luận

-- giúp tuiiii
-- bài mới up
-- số nguyên tố là số chia hết cho 1 và chính nó à:)
-- yep =)
-- đi mà :v
-- đang làm nè vừa mới onl
-- ok lẹ:)
-- lâu zợ

Lời giải 2 :

$0,37s$

//eratosthenes
#include <bits/stdc++.h>
#define ull unsigned long long
using namespace std;

void eratos(ull a,ull b,bool best[]) {
    memset(best,true,b + 1);
    best[0] = false;
    best[1] = false;
    for(int i = 2; i <= trunc(sqrt(b)); i++) {
        if(best[i]) {
            for(int j = i; j <= trunc(b / i); j++) {
                best[i * j] = false;
            }
        }
    }
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    ull a,b;
    cin >> a >> b;
    bool best[b + 1];
    eratos(a,b,best);
    for(int i = a; i <= b; i++) {
        if(best[i]) {
            cout << i << "\n";
        }
    }
}

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK