Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

PNUMBER - Tìm số nguyên tố

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:0.735s
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
2018-05-24 16:49:11
sàng nguyên tố thì mất thời gian ...... mọi người nên kiểm tra theo kiểu 6k+1 và 6k-1
2018-05-14 12:10:24
#include <iostream>
#include<math.h>
using namespace std;

int Nguyento(int n) {
for (int i = 2; i <= sqrt(n); i++)
{
if (n%i == 0) return 0;
}
return 1;
}

int main() {

// your code here
int a, b, min, max;

cin >> a >> b;

if (a <= b) { min = a; max = b; }
else { min = b; max = a; }

for (int i = min; i <= max; i++)
{
if (Nguyento(i)) cout << i << endl;
}
return 0;
}
=> Sai đâu thế anh em :'(
2018-04-28 14:29:30
Xem lời giải:
https://vietcodes.github.io/code/139/
2018-03-29 16:04:37
Sàng nguyên tố
2018-03-28 10:36:38
why it not working

#include <stdio.h>

main()
{
int A,B,i,j;
bool nt[200000];

scanf("%i %i",&A,&B);


for(i=2; i*i<=B ;i++)

if (nt[i]==false)
{
for(j=2*i;j<=B;j=j+i)
nt[j]=true;
}


for(i=2;i<=B;i++)
if ((nt[i]==false)&&(i<=B)&&(i>=A))
printf("%i\n",i);


}
2018-03-04 16:03:03
code chuẩn:
#include<bits/stdc++.h>
using namespace std;
int a,b;
//---------------------
bool nt(int n)
{
if(n<2) return false;
for(int i=2;i<=trunc(sqrt(n));i++)
if(n%i==0) return false;
return true;
}
//---------------------
int main()
{
cin>>a>>b;
for(int i=a;i<=b;i++)
if(nt(i)) cout<<i<<endl;
}
2017-11-18 12:50:50
test chấm bị sai rồi!
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
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.