Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift
Cho số nguyên ~n~, hãy viết chương trình kiểm tra xem ~n~ có phải số nguyên tố hay không?
Input
Số nguyên ~n~ cần kiểm tra
Giới hạn:
- ~|n| \le 10^{12}~
Output
Nếu ~n~ là số nguyên tố, in ra YES
, ngược lại in ra NO
Sample
Input #1
7
Output #1
YES
Bình luận
test3 sao v mn em lam ko ra aj
include <iostream>
include<bits/stdc++.h>
using namespace std; bool ktnt (long long x) { if(x==2 || x==3) return true; if(x%2==0 || x%3==0) return false; for(int i=5;i<=sqrt(x);i+=6) { if(x%i==0 || x%(i+2)==0) return false; } return x; } long long n; int main() { cin>>n; n=abs(n); if(ktnt(n)==1) cout<<"YES"; else cout<<"NO"; }
Hàm kia phải return x>1 chứ bạn :))
.
CODE C++
include<bits/stdc++.h>
using namespace std;
int main(){
}
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
include <bits/stdc++.h>
using namespace std;
bool nt( long long n){ if ( n < 2){ return false; } else{ for (int i = 2; i <=sqrt(n); i++){ if (n % i == 0){ return false; } } } return true; }
int main() { long long n; cin >> n; if (nt(n)) { cout << "YES"; } else { cout << "NO"; } return 0; }
Kiem tra snt
import math
def snt(x): if x<2: return False else: tmp = math.isqrt(x) + 1 for i in range(2,tmp): if x%i==0: return False return True
x = int(input())
if snt(x)==True: print("YES") else: print("NO")
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VL11KTN_COPHAISONGUYENTO {
}
Mọi người sử dụng thuật toán tối ưu mới qua hết được các test
cái khúc if n <= 3: return True sai sai sao á
tại sao bé hơn 2 thì sao mà bé hơn hoặc bằng 3 lại đúng
code c++ sử dụng chương trình con
Java nào các đạo hữu, thấy có ích nhớ vote mình nha:
Em code bằng C bị quá thời gian test cuối cùng. Mọi người cho em xin hướng khắc phục với ạ. Cảm ơn mọi người.
include <stdio.h>
int main() { int n; scanf("%d", &n); int count = 0; int i; if (n <= 1 ) { printf("NO"); } else { for (i = 1; i <= n; i++){ if (n % i == 0) { count++; } } if (count == 2) { printf("YES"); } else { printf("NO"); } } return 0; }
bạn sửa chỗ for (i=2,...) mới đúng
thay vì i<=n thì bạn thay là i<=sqrt(n) xem sao nhé
test 4 la jz mng?
2 nha bạn
include <bits/stdc++.h>
define ll long long
using namespace std;
bool snt(ll n) { if(n<2) return 0; if(n==2 || n==3) return 1; if(n%2==0 || n%3==0) return 0; long i=5; while(i*i<=n) { if(n%i==0 || n%(i+2)==0) return 0; i+=6; } return 1; }
ll n; int main() { cin >> n; if(snt(n)) cout << "YES"; else cout << "NO"; return 0; }
test 1 là sô âm đó mn nên n<=1 thì write (NO)
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
đề cho n là số nguyên thằng ngu ạ, đọc đề ch kỹ chê ng khác ngáo
include<bits/stdc++.h>
using namespace std; int main() { long long n; bool OK=true; cin>>n; if(n<=0) { cout<<"NO"; return 0; } for(int i=2;i<=sqrt(n);i++) if(n%i==0) { OK=false; break; } if(OK==true && n!=1) {cout<<"YES";} else cout<<"NO";
}
#include <bits/stdc++.h>
using namespace std; bool snt(int n) { int i,t=0; if(n<2) return false; for( i=2;i<=sqrt(n);i++) if(n%i==0) t++; if(t==0) return true; else return false; } unsigned long long n; int main() { cin>>n; if(snt(n)==true) cout<<"YES"; else cout<<"NO"; }
bai nay lam kieu j ae toi toan bi sai
Bài này lỗi à ? test case 1 là gì thế mn?
test 1 la` so am nha
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.