Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: các bác cho mình hỏi bài tập về số nguyên tố với

  1. #1
    Ngày gia nhập
    12 2007
    Bài viết
    0

    Red face các bác cho mình hỏi bài tập về số nguyên tố với

    mình muốn viết một chương trình tìm các số nguyên tố nhỏ hơn n(với n nhập vào từ bàn phím).mong các bác chỉ cho mình với.mình cảm ơn

  2. #2
    Ngày gia nhập
    10 2007
    Bài viết
    9

    Tôi nghĩ thế nào trong cái diễn đàn này có nhiểu câu hỏi giống như bạn, tập Search đi

  3. #3
    Ngày gia nhập
    12 2007
    Bài viết
    1

    Thuật toán tìm số nguyên tố:

    Số nguyên tố là số chia hết cho 1 và chính nó.
    Thế nên ta chỉ cần tạo một vòng lặp kiểm tra xem số đó có chia hết từ 1 đến căn bậc hai của số đó.Nếu chia hết thì trả ra kết quả không phải là số nguyên tố ,còn trái lại sau cả vòng lặp đó mà không chia hết cho số nào thì trả ra là số nguyên tố .

    còn việc đếm số nguyên tố thì tạo thêm một vòng lặp bên ngoài nữa chạy từ 1 đến n và từng bước lặp thử xem nó có là số nguyên tố không ?( thêm một biến để đếm mỗi lần thấy số nguyên tố )

    ( Như vậy là phải sử dụng tới 2 vòng lặp và một vài biến phụ khác)

    hoặc bạn có thể viết 2 hàm ,một hàm kiểm tra số nguyên tố , và hàm còn lại sử dụng hàm kiểm tra số nguyên tố để đếm xem từ 1 đến n là được bao nhiêu số.
    Đã được chỉnh sửa lần cuối bởi legenday : 27-12-2007 lúc 01:31 AM.
    Listen to my story
    This may be our last chance.

  4. #4
    Ngày gia nhập
    11 2006
    Bài viết
    6

    Trích dẫn Nguyên bản được gửi bởi anhtuantvb09 Xem bài viết
    mình muốn viết một chương trình tìm các số nguyên tố nhỏ hơn n(với n nhập vào từ bàn phím).mong các bác chỉ cho mình với.mình cảm ơn
    Code đây:chúc bạn thành công
    // Prime.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"
    #include<stdio.h>
    #include<conio.h>
    #define N 1000
    int IsPrime(int n){

    int i,Prime=1;
    for(i=2;i<n/2;i++)
    if(n%i==0)
    Prime=0;
    return Prime;
    }


    void ListPrime(int n){
    int i;
    for(i=2;i<=n;i++)
    if(IsPrime(i))
    printf(" %d",i);

    }
    void main()
    {
    int n;
    printf("N=");
    scanf("%d",&n);
    ListPrime(n);
    getch();
    }

  5. #5
    Ngày gia nhập
    12 2007
    Nơi ở
    Tp.HCM
    Bài viết
    24

    Code:
    int IsPrime(int n)
    {
    	int i,Prime=1;
    	for(i=2;i<n/2;i++)
    		if(n%i==0) Prime=0;
    	return Prime;
    }
    Ta chỉ cần cho i chạy từ 2 đến căn bậc 2 của n là được, vì sqrt(n)*sqrt(n)+1 > n nên n sẽ không chia hết cho các số từ sqrt(n)+1. Và hàm IsPrime cũng không cần phải đặt thêm biến Prime, chỉ cần n chia hết cho i thì return 0, còn không thì return 1.

    Code:
    int IsPrime(int n)
    {
    	for(int i=2; i<=sqrt(n); i++)
    		if(n%i==0) return 0;
    	return 1;
    }
    Chú ý: Phải include thư viện math.h trước khi dùng hàm sqrt.

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

  1. Bài tập C giải thuật nhập vào số nguyên n in ra n số nguyên tố đầu tiên?
    Gửi bởi LTC trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 48
    Bài viết cuối: 25-04-2013, 07:40 PM
  2. Viết chương trình nhập số nguyên dương n, liệt kê n số nguyên tố đầu tiên.
    Gửi bởi maiit trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 11
    Bài viết cuối: 19-06-2011, 01:05 PM
  3. Game Viết chương trình nhập số nguyên dương n, liệt kê n số nguyên tố đầu tiên trên C#?
    Gửi bởi maiit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 18
    Bài viết cuối: 08-06-2011, 11:12 PM
  4. Bài tập C++ chương trình đổi 1 số nguyên trong hệ thập phân sang hệ fibo và cộng 2 số nguyên được
    Gửi bởi nghiapro512 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 23-01-2011, 02:14 PM
  5. Lập trình C xin code cài đặt thuật toán sàng nguyên tố để liệt kê các số nguyên tố 2->480000
    Gửi bởi ngocdung_088 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 23
    Bài viết cuối: 06-12-2010, 11:53 PM

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