VL11 - Kiểm tra số nguyên tố

Xem dạng PDF

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

Hãy đọc nội quy trước khi bình luận.



  • 0
    ngoantrinh  đã bình luận lúc 24, Tháng 4, 2024, 8:23

    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"; }


    • 0
      vudinhlong  đã bình luận lúc 25, Tháng 4, 2024, 11:42

      Hàm kia phải return x>1 chứ bạn :))


  • 1
    thanhnh4n  đã bình luận lúc 19, Tháng 3, 2024, 11:16

    .


  • 3
    hieucode  đã bình luận lúc 18, Tháng 2, 2024, 13:35

    CODE C++

    include<bits/stdc++.h>

    using namespace std;

    int main(){

    int n;
    cin >> n;
    bool z = true;
    if(n < 2) z = false;
    else{
        for(int i = 2; i <= sqrt(n); i++){
            if(n % i == 0) z = false;
              break;
        }
    } 
    if(z) cout << "YES";
    else cout << "NO";
    return 0;
    

    }


  • -5
    phongk72a2  đã bình luận lúc 5, Tháng 2, 2024, 6:28

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 0
    hailuacx  đã bình luận lúc 12, Tháng 1, 2024, 15:58

    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; }


  • -1
    DKN13  đã bình luận lúc 11, Tháng 1, 2024, 10:19

    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")


  • 0
    Kha_ga_k29  đã bình luận lúc 31, Tháng 12, 2023, 9:23

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    namespace VL11KTN_COPHAISONGUYENTO {

    internal class Program
    {
        static void Main(string[] args)
        {
            long n = long.Parse(Console.ReadLine());
            if (n < 2)
                Console.Write("NO");
            else 
            {
                for (int i = 2; i <= Math.Sqrt(n); i++)
                {
                    if (n % i == 0)
                    {
                        Console.Write("NO");
                        return;
                    }
    
                }
                Console.Write("YES");
            }
    
        }
    }
    

    }


  • -2
    VoPhatDat  đã bình luận lúc 20, Tháng 12, 2023, 8:42

    Mọi người sử dụng thuật toán tối ưu mới qua hết được các test

    import math def is_prime(n): if n < 2: return False if n <= 3: return True if n % 2 == 0 or n % 3 == 0: return False i = 5 while i * i <= n: if n % i == 0 or n % (i + 2) == 0: return False i += 6 return True

    n = int(input())

    if is_prime(n): print("YES") else: print("NO")


    • 1
      phan_phat_dat  đã bình luận lúc 11, Tháng 2, 2024, 16:03

      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


  • 0
    nhatnobody  đã bình luận lúc 17, Tháng 12, 2023, 8:07

    code c++ sử dụng chương trình con

    include<bits/stdc++.h>

    using namespace std; bool k(long long x) { if(x<2) return false; // không có số nguyên tố nào <2 >for(int i=2;i<=sqrt(x);i++) //chỉchạyđếncăn x vì bất kỳ yếu tố nào nằm trên căn bậc hai của nó, thì yếu tố dưới đã được kiểm tra nên kiểm tra thêm là không cần thiết { if(x % i == 0) // Nếu x chia hết cho i, không phải số nguyên tố return false; } return true; // Nếu không có yếu tố nào, x là số nguyên tố }

    int main(){ long long n; cin>>n; if(k(n)==true) cout<<"YES"; else cout<<"NO"; }


  • 2
    kitajima2910  đã bình luận lúc 16, Tháng 12, 2023, 6:04

    Java nào các đạo hữu, thấy có ích nhớ vote mình nha:

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.math.BigInteger;
    import java.util.StringTokenizer;
    
    /**
     *
     * @author Kitajima2910
     */
    public class VL11 {
    
        public static void main(String[] args) throws IOException {
    
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            StringTokenizer st = new StringTokenizer(br.readLine());
    
            String n = st.nextToken();
    
            BigInteger bi = new BigInteger(n);
    
            if(bi.isProbablePrime(1) && Integer.valueOf(n) > 1) {
                System.out.println("YES");
            } else {
                System.out.println("NO");
            }
    
        }
    
    }
    

  • 0
    5kym4rk  đã bình luận lúc 12, Tháng 11, 2023, 2:07

    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; }


    • 0
      BienLon8888  đã bình luận lúc 17, Tháng 2, 2024, 14:40

      bạn sửa chỗ for (i=2,...) mới đúng


    • 0
      khoaphamby  đã bình luận lúc 10, Tháng 12, 2023, 11:54

      thay vì i<=n thì bạn thay là i<=sqrt(n) xem sao nhé


  • 0
    minyzin  đã bình luận lúc 9, Tháng 11, 2023, 6:35

    test 4 la jz mng?


    • 0
      makerslim  đã bình luận lúc 6, Tháng 1, 2024, 12:54

      2 nha bạn


  • 0
    LongvnXD  đã bình luận lúc 6, Tháng 11, 2023, 15:09

    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; }


  • 0
    andzs1thgioi  đã bình luận lúc 18, Tháng 10, 2023, 14:37

    test 1 là sô âm đó mn nên n<=1 thì write (NO)


    • -7
      TBThao  đã bình luận lúc 11, Tháng 11, 2023, 5:48

      Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


      • 1
        AzureAbalone  đã bình luận lúc 13, Tháng 11, 2023, 10:07

        đề cho n là số nguyên thằng ngu ạ, đọc đề ch kỹ chê ng khác ngáo


  • 0
    Thien_Nhan_902  đã bình luận lúc 13, Tháng 10, 2023, 3:08

    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";

    }


  • -3
    hohoanghai5042011  đã bình luận lúc 10, Tháng 10, 2023, 8:01 chỉnh sửa

    #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"; }


  • -2
    noname2003  đã bình luận lúc 18, Tháng 9, 2023, 4:18

    bai nay lam kieu j ae toi toan bi sai


  • -2
    longzuhaun  đã bình luận lúc 9, Tháng 9, 2023, 14:42

    Bài này lỗi à ? test case 1 là gì thế mn?


    • 0
      minyzin  đã bình luận lúc 9, Tháng 11, 2023, 6:33

      test 1 la` so am nha


  • -11
    ZaoZing  đã bình luận lúc 8, Tháng 8, 2023, 11:51

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -14
    PQM1709  đã bình luận lúc 27, Tháng 7, 2023, 9:16

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -16
    annh  đã bình luận lúc 11, Tháng 7, 2023, 4:20

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -11
    anhbongthayminhquadeptrai  đã bình luận lúc 10, Tháng 7, 2023, 15:32

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.