N%i == 0 là gì

1. Như thế nào là một số nguyên tố (prime number)?

Một số nguyên dương chỉ chia hết cho 1 và chính nó được gọi là số nguyên tố. Ví dụ, 2, 3, 5, 7, 11, 13, 17, 19, 23,… là các số nguyên tố. Lưu ý: 0 và 1 không phải là số nguyên tố.

Ý tưởng kiểm tra một số nguyên dương n có phải là số nguyên tố hay không?

1. Nếu số nguyên dương n là 0 hoặc 1 thì kết luận không phải là số nguyên tố.

2. Nếu n không chia hết cho bất kỳ số nào từ 2 đến n-1 thì kết luận n là số nguyên tố. Ngược lại, kết luận n không phải là số nguyên tố.

Dễ thấy, chỉ có số 2 là số nguyên tố chẵn, tất cả các số chẵn khác không phải là số nguyên tố vì chúng chia hết cho 2. Do đó, thay vì phải duyệt từ 2 đến n-1, chúng ta có thể chỉ xem xét từ 2 đến n/2.

Ngoài ra, người ta đã chứng minh được rằng: chỉ cần kiểm tra xem n có chia hết cho bất kỳ số nào từ 2 đến căn bậc hai của n để xác định xem n có phải số nguyên tố hay không.

2. Chương trình kiểm tra số nguyên tố trong Java

Sử dụng vòng lặp for trong Java để kiểm tra n có chia hết cho bất kỳ số nào từ 2 đến n-1 hay không?

package primenumber; import java.util.Scanner; public class PrimeNumber { public static void main(String[] args) { int num; boolean is_prime = true; System.out.print("Enter a positive integer: "); try (Scanner scanner = new Scanner(System.in)) { num = scanner.nextInt(); } // 0 and 1 are not prime numbers if (num == 0 || num == 1) { is_prime = false; } // loop to check if n is prime for (int i = 2; i <= num-1; i++) { if (num % i == 0) { is_prime = false; break; } } if (is_prime) { System.out.print(num + " is a prime number"); } else { System.out.print(num + " is not a prime number"); } } }

Chúng ta có thể thay đổi điều kiện lặp trong for để chỉ chạy từ 2 đến n/2.

// loop to check if n is prime for (int i = 2; i <= num/2; i++) { if (num % i == 0) { is_prime = false; break; } }

Chúng ta có thể thay đổi điều kiện lặp trong for để chỉ chạy từ 2 đến căn bậc 2 của n (Math.sqrt(n)).

// loop to check if n is prime for (int i = 2; i <= Math.sqrt(num); i++) { if (num % i == 0) { is_prime = false; break; } }

Chúng ta chỉ nên duyệt đến căn bậc 2 của n để làm ngắn gọn số lần lặp trong for.

  • Định nghĩa và gọi phương thức (method) trong Java
  • Ghi đè phương thức (method overriding) khi kế thừa trong Java
  • Kiểu dữ liệu enum trong Java
  • Sửa (update) dữ liệu và câu lệnh drop trong MySQL với Python
  • Giới thiệu môn học Ngôn ngữ lập trình Python

Java programming

Điều hướng bài viết

  • N%i == 0 là gì
  • Diễn đàn
  • LẬP TRÌNH C++ | LẬP TRÌNH C | LẬP TRÌNH C++0X
  • Thắc mắc lập trình C/C++/C++0x
  • return 0; Nghĩa là gì?

  1. return 0; Nghĩa là gì?

    lệnh return 0; là sao, ai có thể giải thích hộ ko?
    em dùng tubor C++ 4.5
    nhiều lúc bổ đi hay thêm vào đều ko thấy khác nhau gì.


  2. Trong C hay C++ , một hàm có giá trị trả về là kiểu bool (loại hàm kiểm tra) thì tương ứng với hàm trả về kiểu int tương ứng như sau:
    - hàm trả về true thì tương ứng với trả về kiểu int khác 0.
    - hàm trả về false thì tương ứng với trả về kiểu int bằng 0.
    Như vậy return 0 có nghĩa là return false.


  3. nghĩa là trả về giá trị đúng hoặc sai, nhưng mình vẫn chưa rõ lắm, bạn có thể nói kĩ hơn ko, hay lấy cho mình cái VD cang tốt, cảm ơn
    như ở trường hợp của mình:

    PHP Code:

    #include<stdio.h>
    #include<conio.h>
        
    void main ()
        {
    int a,b;
            
    printf("\n hay nhap gia tri a va b");
            
    scanf("%d%d",&a,&b);
                    if (
    a>b)
                        
    printf("\n gia tri a = %d lon hon gia tri b = %d",a,b);
                else if (
    a=b)
                        
    printf("\n gia tri a bang gia tri b va bang %d",a);
                else
                        
    printf("\n gia tri a %d nho hon gia tri b %d",a,b);getch();
            
    //    return 0; 

    nếu hiển thị return 0; thì sẽ bào lỗi và ko chạy được

    Đã được chỉnh sửa lần cuối bởi peterdrew : 28-05-2010 lúc 09:26 PM.


  4. các hàm void thì bạn không cần phải return
    Nếu là int main() thì sẽ cần return 0;


  5. cảm ơn. cho mình hỏi

    PHP Code:

    #include<stdio.h>
    #include<conio.h>
        
    int main ()
        {
    int a,b;
            
    printf("\n hay nhap gia tri a va b");
            
    scanf("%d%d",&a,&b);
                    if (
    a>b)
                        
    printf("\n gia tri a = %d lon hon gia tri b = %d",a,b);
                else if(
    a=b)
                        
    printf("\n gia tri a bang gia tri b va bang %d",a);
                else
                        
    printf("\n gia tri a %d nho hon gia tri b %d",a,b);getch();
                return 
    0

    sai ở đâu thế, chạy mà ko hoàn chỉnh, chán

    Đã được chỉnh sửa lần cuối bởi peterdrew : 28-05-2010 lúc 09:27 PM.


  6. return 0; Nghĩa là gì?

    nếu trong main có cái hàm đó thì không có tác dụng gì cả. vì nó chạy chương trình đến đó là kết thúc thôi.


  7. N%i == 0 là gì
    Nguyên bản được gửi bởi ndm
    N%i == 0 là gì

    cảm ơn. cho mình hỏi

    #include<stdio.h>
    #include<conio.h>
    int main ()
    {

    int a,b;
    printf("\n hay nhap gia tri a va b");
    scanf("%d%d",&a,&b);
    if (a>b)
    printf("\n gia tri a = %d lon hon gia tri b = %d",a,b);
    else if(a=b)
    printf("\n gia tri a bang gia tri b va bang %d",a);
    else
    printf("\n gia tri a %d nho hon gia tri b %d",a,b);

    getch();
    return 0;

    sai ở đâu thế, chạy mà ko hoàn chỉnh, chán

    không hoàn chỉnh ở chỗ nào vậy bạn. cái hàm này là khi hiển thị xong thì nó dừng lại vì bạn có hàm getch();


  8. N%i == 0 là gì
    Nguyên bản được gửi bởi ndm
    N%i == 0 là gì

    cảm ơn. cho mình hỏi

    #include<stdio.h>
    #include<conio.h>
    int main ()
    {

    int a,b;
    printf("\n hay nhap gia tri a va b");
    scanf("%d%d",&a,&b);
    if (a>b)
    printf("\n gia tri a = %d lon hon gia tri b = %d",a,b);
    else if(a=b) //phải là (a==b) đây là so sánh chứ ko phải gán
    printf("\n gia tri a bang gia tri b va bang %d",a);
    else
    printf("\n gia tri a %d nho hon gia tri b %d",a,b);

    getch();
    return 0;

    sai ở đâu thế, chạy mà ko hoàn chỉnh, chán

    Bạn xem thử nhé.


  9. nếu có lỗi gì thì bạn chụp màn hình lên.
    Hàm main thiếu 1 dấu đóng ngoặc.
    Vui lòng bọc code vào tag.


  10. Chào bạn!

    Giá trị trả ra của một hàm do ý đồ của người thiết kế, tùy theo giá trị này mà thực hiện những xử lý tương ứng với giá trị trả ra.
    Return 0 có nghĩa là flase còn return 1 có nghĩa là true, cái này tùy quan điểm của mỗi người thôi.
    Xét hàm strcmp() dùng kiểm tra 2 chuỗi có giống nhau hay không, giá trị trả ra là 0 nghĩa là 2 chuỗi giống nhau.
    Nếu có dịp bạn hãy nhìn qua các dòng code mà người nước ngoài viết, với họ return 0 nghĩa là error none ( không có lỗi xảy ra ).

    Thân!


Các đề tài tương tự

  1. Trả lời: 28

    Bài viết cuối: 27-02-2015, 12:36 AM

  2. Trả lời: 8

    Bài viết cuối: 01-11-2012, 10:54 AM

  3. Trả lời: 3

    Bài viết cuối: 24-05-2012, 07:43 PM

  4. Trả lời: 23

    Bài viết cuối: 26-04-2011, 12:17 AM

  5. Trả lời: 4

    Bài viết cuối: 22-06-2010, 10:23 AM

N%i == 0 là gì
Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn
  • Tìm hiểu luật lệ tham gia diễn đàn

  • BB code: On
  • Mặt cười: On
  • [IMG] code: On
  • [VIDEO] code is On
  • HTML code: Off