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-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
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
}
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.