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

Đề tài: Tìm 2 số nguyên tố cho biết tích của 2 số đó là N

  1. #1
    Ngày gia nhập
    10 2009
    Bài viết
    1

    Mặc định Tìm 2 số nguyên tố cho biết tích của 2 số đó là N

    Hiện h em có 1 bài lập trình rất đau đầu (nghĩ mãi mà ko ra thuật toán)

    Cho 1 số tự nhiên thuộc N.
    Kiểm tra xem N có phải tích của 2 số nguyên tố ko ?
    Nếu đúng thì tìm 2 số nguyên tố đó.

    Em đã nghĩ đến thuật toán là :

    tìm các số nguyên tố từ 1 -> N/2 rồi đẩy vào 1 mảng A
    tạo 1 mảng B giống với mảng A
    rồi nhân lần lượt từng phần tử của B với A
    nếu nó == với N thì in ra 2 số của phần từ A[i] và B[i]

    Nhưng ông thầy ông nói là thuật toán đơn giản lắm ko phức tạp như thế.
    -> Em bó tay.
    Có cao nhân nào biết thì có thể chỉ giúp em với đuọc ko.

  2. #2
    Ngày gia nhập
    10 2010
    Nơi ở
    Đại học Bách Khoa Hà Nội
    Bài viết
    45

    Trích dẫn Nguyên bản được gửi bởi quainhanxanh Xem bài viết
    Hiện h em có 1 bài lập trình rất đau đầu (nghĩ mãi mà ko ra thuật toán)

    Cho 1 số tự nhiên thuộc N.
    Kiểm tra xem N có phải tích của 2 số nguyên tố ko ?
    Nếu đúng thì tìm 2 số nguyên tố đó.

    Em đã nghĩ đến thuật toán là :

    tìm các số nguyên tố từ 1 -> N/2 rồi đẩy vào 1 mảng A
    tạo 1 mảng B giống với mảng A
    rồi nhân lần lượt từng phần tử của B với A
    nếu nó == với N thì in ra 2 số của phần từ A[i] và B[i]

    Nhưng ông thầy ông nói là thuật toán đơn giản lắm ko phức tạp như thế.
    -> Em bó tay.
    Có cao nhân nào biết thì có thể chỉ giúp em với đuọc ko.
    đơn giản hơn:
    tạo hàm kiểm tra một số có phải số nguyên tố hay không?
    lần lượt chia N cho các số từ 2 đến căn n, nếu chia hết và cả số chia + kết quả đều là số nguyên tố thì N là tích của 2 số nguyên tố
    Chẳng biết mình muốn cái gì nữa :v

  3. #3
    Ngày gia nhập
    08 2009
    Bài viết
    148

    C++ Code:
    1. #include<stdio.h>
    2. #include<iostream.h>
    3. #include<math.h>
    4.  
    5. int ktnt(int);
    6. int main()
    7. {
    8.     int a=5;
    9.     cout<<"\nNhap a: ";
    10.     cin>>a;
    11.    
    12.     int b,c,kiemtra=0;
    13.     if(a<4)
    14.     {
    15.         cout<<"\nKhong co 2 so nguyen to nao thoa ma tich bang "<<a<<endl;
    16.     }
    17.     else
    18.     {
    19.         for(b=2;b<(int)(a/2)+1;b++)
    20.         {
    21.             for(c=2;c<(int)(a/2)+1;c++)
    22.             {
    23.                 if(b*c==a&&ktnt(b)&&ktnt(c))
    24.                 {
    25.                     cout<<a<<" ="<<b<<"*"<<c<<endl;
    26.                     kiemtra=1;
    27.                     break;
    28.                 }
    29.             }
    30.             if(kiemtra)
    31.                 break;
    32.             else  if(b*c==a&&ktnt(b)&&ktnt(c))
    33.                     {
    34.                         cout<<a<<" ="<<b<<"*"<<c<<endl;
    35.                         break;
    36.                     }
    37.         }
    38.         if(!kiemtra)
    39.             cout<<"\nKhong co 2 so nguyen to nao thoa ma tich bang "<<a<<endl;
    40.     }
    41.    
    42.     return 0;
    43. }
    44. int ktnt(int m)
    45. {
    46.  
    47.     for(int j=2;j<=(int)sqrt(m);j++)
    48.     {
    49.         if(m%j==0)
    50.             return 0;
    51.     }
    52.     return 1;
    53. }
    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3. int main(){    char *_="%c%c%c%c%c%c%c%c%c%c%c%c%c%c";int __=3**_+5;
    4.     printf(_,__,__-12,__-19,__-6,__-12,__-4,__-12,__-5,__-6,__-13,__-17,__,__,__+2);
    5.     getch();return 0;}

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

  1. Bài sàng nguyên tố bị lỗi sai khi dùng mảng đánh dấu là biến địa phương
    Gửi bởi Ken Fei trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 23-08-2013, 09:36 AM
  2. Lập trình C in giá trị của biến nguyên sử dụng con trỏ
    Gửi bởi kinhkong89 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 17-01-2011, 10:29 PM
  3. Lập trình C++ Một số nguyên 10^40 thì khai báo biến chứa nó kiểu gì?
    Gửi bởi tuyetanh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 26-09-2010, 05:07 AM
  4. Cộng các biến nguyên khác kiểu
    Gửi bởi hoahongden trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 14-10-2008, 08:22 AM
  5. xin hỏi có ai biết cách tính toán với các số lớn nguyên ??
    Gửi bởi vatit trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 02-05-2007, 05:57 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