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

View as PDF

Submit solution

Points: 1.00 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
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

Comments

Please read the guidelines before commenting.



  • 0
    hieucode  commented on Feb. 18, 2024, 1:35 p.m.

    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;
    

    }


  • -2
    phongk72a2  commented on Feb. 5, 2024, 6:28 a.m.

    test 5 là gì vậy ạ


  • 0
    hailuacx  commented on Jan. 12, 2024, 3:58 p.m.

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


  • 0
    DKN13  commented on Jan. 11, 2024, 10:19 a.m.

    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  commented on Dec. 31, 2023, 9:23 a.m.

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

    }


  • -1
    VoPhatDat  commented on Dec. 20, 2023, 8:42 a.m.

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


    • 0
      phan_phat_dat  commented on Feb. 11, 2024, 4:03 p.m.

      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  commented on Dec. 17, 2023, 8:07 a.m.

    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  commented on Dec. 16, 2023, 6:04 a.m.

    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  commented on Nov. 12, 2023, 2:07 a.m.

    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  commented on Feb. 17, 2024, 2:40 p.m.

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


    • 0
      khoaphamby  commented on Dec. 10, 2023, 11:54 a.m.

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


  • 0
    minyzin  commented on Nov. 9, 2023, 6:35 a.m.

    test 4 la jz mng?


    • 0
      makerslim  commented on Jan. 6, 2024, 12:54 p.m.

      2 nha bạn


  • 0
    LongvnXD  commented on Nov. 6, 2023, 3:09 p.m.

    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  commented on Oct. 18, 2023, 2:37 p.m.

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


    • -6
      TBThao  commented on Nov. 11, 2023, 5:48 a.m.

      This comment is hidden due to too much negative feedback. Show it anyway.


      • 2
        AzureAbalone  commented on Nov. 13, 2023, 10:07 a.m.

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


  • 0
    Thien_Nhan_902  commented on Oct. 13, 2023, 3:08 a.m.

    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  commented on Oct. 10, 2023, 8:01 a.m. edited

    #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  commented on Sept. 18, 2023, 4:18 a.m.

    bai nay lam kieu j ae toi toan bi sai


  • -2
    longzuhaun  commented on Sept. 9, 2023, 2:42 p.m.

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


    • 0
      minyzin  commented on Nov. 9, 2023, 6:33 a.m.

      test 1 la` so am nha


  • -11
    ZaoZing  commented on Aug. 8, 2023, 11:51 a.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


  • -12
    PQM1709  commented on July 27, 2023, 9:16 a.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


  • -15
    annh  commented on July 11, 2023, 4:20 a.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


  • -10
    anhbongthayminhquadeptrai  commented on July 10, 2023, 3:32 p.m.

    This comment is hidden due to too much negative feedback. Show it anyway.