Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
PNUMBER - Tìm số nguyên tố |
Hiện tại, bài tập này đã có trên online judge chính thức của VNOI, bạn có thể truy cập ở đây: https://oj.vnoi.info/problem/pnumber
Hãy tìm tất cả các số nguyên tố trong đoạn [A,B] .
Input
Gồm 2 số nguyên A và B cách nhau bởi 1 dấu cách ( 1 ≤ A ≤ B ≤ 200000 ) .
Output
Ghi ra tất cả các số nguyên tố trong khoảng [A,B]. Mỗi số trên 1 dòng .
Ví dụ
Input: 1 10 Output: 2 3 5 7
Được gửi lên bởi: | Nguyen Minh Hieu |
Ngày: | 2007-09-17 |
Thời gian chạy: | 1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | Tất cả ngoại trừ: ERL GOSU JS-RHINO NODEJS PERL6 PYPY RUST SED VB.NET |
Nguồn bài: | Dân gian |
hide comments
|
||||||||||||||
2017-10-29 17:47:13
code thế , sao vẫn lỗi nhỉ #include <iostream> using namespace std; int a, b, i, j; bool kt_nto(int x) { if (x < 2) return false; else { for (int i = 2; i < x; i++) { if (x % i == 0) return false; } return true; } } int main() { cin >> a >> b; for (j = a; j <= b; j++) { if (kt_nto(j) == true) cout << j << endl; } return 0; } |
||||||||||||||
2017-09-19 15:55:59
void SanNguyenTo() { memset(MangSNT,0,sizeof(MangSNT)); MangSNT[0]=MangSNT[1]=1; int x=1; while(x<sqrt(200000)) { if(MangSNT[++x]) continue; for(int j = x*2;j<200000;j+=x) MangSNT[j]=1; } } int main() { // your code goes here cin>>a>>b; SanNguyenTo(); for(int i = a;i<=b ;i++) if(MangSNT[i]==0) cout<<i<<'\n'; return 0; } cho mình hỏi sao code của mình lại wrong answer vậy ? Mình dùng pp sàn nguyên tố |
||||||||||||||
2017-06-18 15:50:36
Tham khảo thuật toán và code tại: http://yeulaptrinh.pw/734/pnumber-spoj/ Last edit: 2017-06-20 03:26:21 |
||||||||||||||
2017-05-29 16:17:13
#include<iostream> #include<stdio.h> #include<math.h> #include<algorithm> //#include<conio.h> #define forto(i,x,y) for(int i=(x),_b=(y);i<=_b;i++) #define forco(i,x,y) for(int i=(x),_b=(y);i>=_b;i--) using namespace std; const int oo = 1e7 + 3; int a, b; int cnt = 0; int prime[oo]; void thenes() { forto(i, 2, 10000) { if (!prime[i]) { for (int j = i; j*i <= 200000; j++) { prime[i*j] = i; } } } return; } int main() { //Coding or to be coded thenes(); cin >> a >> b; //cout << "Primes " << a << " to " << b << ": "; forto(i, a, b) { if (!prime[i] && i != 1) { /*++cnt;*/ cout << i << "\n"; } } /*cout << "\n"; cout <<"Answer: "<<cnt; cout << cnt;*/ /*_getch();*/ return 0; //When you want to give up, which cause make you start //If you stop , you still go alone } |
||||||||||||||
2017-04-23 17:36:40
var a,b,i : integer; function nguyento( n : integer) : boolean; var j :integer; begin if n = 1 then exit(false); if n = 2 then exit(true); for j := 2 to trunc(sqrt(n)) do if n mod j = 0 then exit(false); exit(true); end; begin readln(a,b); for i := a to b do begin if nguyento(i) then writeln(i); end; end. => Ai check dùm với, không biết sai ở đâu |
||||||||||||||
2017-04-19 05:22:51
mình chạy trên máy thì đúng hết mà sao nộp bài lại sai nhỉ??? |
||||||||||||||
2017-04-16 12:13:14
mọi người cho mình hỏi sao thế này vẫn chưa đc nhỉ ? #include <iostream> #include<math.h> using namespace std; int main() { int a, b, i, j, flag; cin >> a >> b; // nhap a va b. for(i=a; i<=b; ++i) { flag=1; for(j=2; j<=sqrt(i); ++j) { if(i%j==0) { flag=0; break; } } if(flag==1) cout << i << endl; } return 0; } => Bài này của c chưa xét trường hợp a=2 hả ? |
||||||||||||||
2017-03-08 17:54:07
mọi người cho mình hỏi sao thế này vẫn chưa đc nhỉ ? #include <iostream> #include<math.h> using namespace std; int main() { int a, b, i, j, flag; cin >> a >> b; // nhap a va b. for(i=a; i<=b; ++i) { flag=1; for(j=2; j<=sqrt(i); ++j) { if(i%j==0) { flag=0; break; } } if(flag==1) cout << i << endl; } return 0; } Last edit: 2017-03-08 18:18:12 |
||||||||||||||
2017-02-20 15:08:27
không hiểu sao mình chạy code trên máy đúng mà trên này lại sai nhỉ |
||||||||||||||
2016-11-30 16:37:47
Ủa, sao mình duyệt trâu mà nó báo chạy quá thời gian à? |