Trang 1 trên tổng số 4 123... Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 36 kết quả

Đề tài: Phân tích 1 số thành các số nguyên tố

  1. #1
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mặc định Phân tích 1 số thành các số nguyên tố



    Mình đưa ra bài này vì lâu rồi không thấy mọi người cùng làm chung bài tập. Để tạo lại bầu không khí khi xưa vậy. Bài này không khó, và cũng có rất nhiều cách làm. Ai làm được cứ post, không làm được đưa ý tưởng cũng very welcome. T_T ! ( Đừng chê dễ quá không thèm làm là được rùi )
    Đề bài yêu như sau yêu cầu user nhập vào 1 số, phân tích ra thừa số nguyên tố, vậy thui.

    Input and Output
    Enter number: 36
    Prime factors: 2 x 2 x 3 x 3

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

    Ý tưởng:
    Nhập n
    Cho i chạy từ 2 đến sqrt(n), nếu gặp 1 số là số nguyên tố thì lấy n chia nguyên nó cho đến khi ko chia được nữa thì lại tiếp tục. Quá trình tiến hành cho đến khi n=1, mỗi lần chia nguyên được thì kết xuất ra màn hình con số nguyên tố đó và dấu x.
    Sẽ có code sau nếu vẫn chưa ai hiểu ^^

  3. #3
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Yeah ! Bravo ! Ý tưởng ông đúng rùi T_T ! Post code cho mọi người tham khảo đê chứ hì hì ! Thật ra mấy cái này cũng mẹo 1 tí thôi, cũng còn nhiều cách, để chờ mọi người post lời giải nhiều nhiều rùi tui post mấy cách khác lên T_T! Còn bác nào nữa không nhỉ ? ~~

  4. #4
    Ngày gia nhập
    01 2008
    Bài viết
    41

    mình viết=C ,test qua thì thấy đúng,mọi người góp ý nhé
    Code:
    #include <stdio.h>
    #include <math.h>
    
    int isprime(int n)
    {
    	int i;
    	for(i=2;i<=sqrt(n);i++)
    	 if(n%i==0)return i;
            return 0;
    }
    
    main()
    {
    	int n,i,p[50],count=0;
    	printf("\ninput: ");scanf("%d",&n);
    	while(n>1)
    	{
    		if(!isprime(n)){p[count++]=n;break;}
    		else {
    			p[count++]=isprime(n);
    			n=n/(isprime(n));}
    	}
    	for(i=0;i<count;i++)
    	printf(" %d ",p[i]);
    
    
    }

  5. #5
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Thuật toán chính xác, code viết rất dễ hiểu ! Cái này ý tưởng chắc cũng na na giống huynguyen nhỉ ? Thanks bài làm của bạn nhé ^^!

  6. #6
    Ngày gia nhập
    01 2008
    Bài viết
    41

    Mặc định Phân tích 1 số thành các số nguyên tố

    uhm nhưng mình nghĩ cách này hơi thô,đợi mai thi xong tối về nghĩ xem có cách nào hay không

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

    Trích dẫn Nguyên bản được gửi bởi huynguyen Xem bài viết
    Ý tưởng:
    Nhập n
    Cho i chạy từ 2 đến sqrt(n), nếu gặp 1 số là số nguyên tố thì lấy n chia nguyên nó cho đến khi ko chia được nữa thì lại tiếp tục. Quá trình tiến hành cho đến khi n=1, mỗi lần chia nguyên được thì kết xuất ra màn hình con số nguyên tố đó và dấu x.
    Sẽ có code sau nếu vẫn chưa ai hiểu ^^
    Em ko hiểu tại sao chỉ chạy đến căn bậc 2 của n ???

  8. #8
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Trích dẫn Nguyên bản được gửi bởi sieuphuong Xem bài viết
    Em ko hiểu tại sao chỉ chạy đến căn bậc 2 của n ???
    Nếu là bài: Tìm các số nguyên tố từ 1 đến n thì bạn sẽ tìm các số đó trong khoảng nào? [1;sqrt(n)] hay là [1;n]?
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

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

    Nếu là bài: Tìm các số nguyên tố từ 1 đến n thì bạn sẽ tìm các số đó trong khoảng nào? [1;sqrt(n)] hay là [1;n]?
    Em ví dụ tìm các số nguyên tố từ 1 đến 100 thì em sẽ tìm từ 1 đến 100 chứ sao chỉ tìm từ 1 đến căn của 100 = 10 .

  10. #10
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Trích dẫn Nguyên bản được gửi bởi sieuphuong Xem bài viết
    Em ví dụ tìm các số nguyên tố từ 1 đến 100 thì em sẽ tìm từ 1 đến 100 chứ sao chỉ tìm từ 1 đến căn của 100 = 10 .
    Toán học đã chứng minh được rằng. Các số nguyên tố nhỏ hơn một số nguyên n nằm trong khoảng nhỏ hơn sqrt(n).
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

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