Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 15 kết quả

Đề tài: Cộng các số nguyên tố trong dãy A>B?

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

    Mặc định Cộng các số nguyên tố trong dãy A>B?

    Đề : Cho hai số A và B là hai số nhập từ bàn phím sau đó tìm trong khoảng này số nào là số nguyên tố và cộng tất cả chúng lại rồi xuất ra màn hình !
    Mong bà con giúp mình nhé ! Mình làm for lòng 2 cái nhưng bị ra kết quả sai :( !

  2. #2
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    -Lập 1 hàm kiểm tra số nguyên k có phải là số nguyên tố không (ĐÚNG:1, SAI:0)
    PHP Code:
    int ktnt(int k)
    {
          for(
    int i=2;i<=sqrt(k);i++)
                 if(
    k%i==0) return 0;
          return 
    1;

    -Sau đó bạn cho 1 vòng lặp chạy từ A->B, kiểm tra xem thằng nào là số NT thì cộng dồn nó vào 1 biến TONG là ok.

  3. #3
    Ngày gia nhập
    11 2008
    Bài viết
    203

    Có ngay đây bạn ạ!
    #
    PHP Code:
    include<conio.h>
    #include<stdio.h>
    #include<math.h>
    #include<stdlib.h>
    bool    ktngto(int);
    int main()
    {
        
    int ABtong=0,dem=0,i=0;
        do
        {
            
            if(
    i>0)
                
    printf("\n\n");
            
    printf("Nhap vao gia tri cua A: ");scanf("%d",&A);
            
    printf("Nhap vao gia tri cua B: ");scanf("%d",&B);
                if(
    A==B)
                {
                    
    printf("\nVui long nhap A khac B!\n");
                    
    i+=1;
                }
        }while(
    A==B);
        
        if(
    A<B)
        {
            
    printf("\nCac so nguyen to trong khoang (%d,%d) la:\n"A,B);
            for(
    int i=A+1;i<B;i++)
                if(
    ktngto(i))
                {
                    
    printf("%d ",i);
                    
    tong+=i;
                    
    dem+=1;
                }
            if(
    dem==0)
                
    printf("\nKhong co so nguyen to nao trong khoang (%d,%d)!\n\n"A,B);
            
                
        }
        if(
    A>B)
        {
            
    printf("\nCac so nguyen to trong khoang (%d,%d) la:\n"A,B);
            for(
    int i=B+1;i<A;i++)
                if(
    ktngto(i))
                {
                    
    printf("%d ",i);
                    
    tong+=i;
                    
    dem+=1;
                }
            if(
    dem==0)
                
    printf("\nKhong co so nguyen to nao trong khoang (%d,%d)!\n"B,A);
            
                
        }
        if(
    dem!=0)
            
    printf("\n\n\nTong cac so nguyen to la: %d",tong);
        
    getch();    
    }

    bool ktngto(int n)
    {
        if(
    n<=1)
            return 
    false;
        if(
    n==2)
            return 
    true;
        
    int bienchay=2,canbachai=0,phandu=0;
        
    canbachai=int(sqrt(n));
        
    bool ktnguyento=true;
        do
        {
            
    phandu=n%bienchay;
            if(
    phandu==0)
              
    ktnguyento=false;
        }while(
    ktnguyento==true&&bienchay++<=canbachai);
           return 
    ktnguyento;

    Tôi tin rằng: giải thuật thì có thể tìm trong hàng trăm GB ebook, hoặc Google nhưng code chạy thì chưa chắc! Hãy post code để chứng tỏ giải thuật của bạn là đúng!
    Giải thuật là bản thiết kế của ngôi nhà, code là phần xây dựng. Nếu chỉ xây nhà trên giấy thì ta sống chả khác nào người nguyên thủy.

  4. #4
    Ngày gia nhập
    04 2009
    Bài viết
    21

    Trích dẫn Nguyên bản được gửi bởi trubavuong Xem bài viết
    -Lập 1 hàm kiểm tra số nguyên k có phải là số nguyên tố không (ĐÚNG:1, SAI:0)
    PHP Code:
    int ktnt(int k)
    {
          for(
    int i=2;i<=sqrt(k);i++)
                 if(
    k%i==0) return 0;
          return 
    1;

    -Sau đó bạn cho 1 vòng lặp chạy từ A->B, kiểm tra xem thằng nào là số NT thì cộng dồn nó vào 1 biến TONG là ok.
    Cái kiểm tra số NT mình làm rồi bạn à mình còn gặp rắc rối là làm sao kết hợp 2 cái for nè một cái for là để check số nguyên tố như bạn và một cái for chạy từ A>B nếu lồng vô nhau nó sẽ ra kết quả sai mình đang học Csharp mong anh em dịch ra Csharp giùm mình mới học 3 ngày à nên còn non kém mong giúp đỡ !

    Code:
       int a,b;
                int sum = 0;
                int.TryParse(Console.ReadLine(), out a);
                int.TryParse(Console.ReadLine(), out b);
                int ktnt(int k)
                {   
    
          for(int i=2;i<=Math.Sqrt(k);i++)
          {
                 if(k%i==0)
                 {  
                     return 0;                 
                 }
                 else 
                 {
                     return 1;
                 }
          }
                }
    Em viết vầy thì bị lỗi hjx hjx ! LỖi phần ktnt int (k) a viết code C# hoàn chỉnh chạy được giúp với em chưa bít cách kết hợp code :((
    Đã được chỉnh sửa lần cuối bởi quangnhut123 : 10-04-2009 lúc 08:54 AM.

  5. #5
    Ngày gia nhập
    04 2009
    Bài viết
    21

    Trích dẫn Nguyên bản được gửi bởi Loveanygirls Xem bài viết
    Có ngay đây bạn ạ!
    #
    PHP Code:
    include<conio.h>
    #include<stdio.h>
    #include<math.h>
    #include<stdlib.h>
    bool    ktngto(int);
    int main()
    {
        
    int ABtong=0,dem=0,i=0;
        do
        {
            
            if(
    i>0)
                
    printf("\n\n");
            
    printf("Nhap vao gia tri cua A: ");scanf("%d",&A);
            
    printf("Nhap vao gia tri cua B: ");scanf("%d",&B);
                if(
    A==B)
                {
                    
    printf("\nVui long nhap A khac B!\n");
                    
    i+=1;
                }
        }while(
    A==B);
        
        if(
    A<B)
        {
            
    printf("\nCac so nguyen to trong khoang (%d,%d) la:\n"A,B);
            for(
    int i=A+1;i<B;i++)
                if(
    ktngto(i))
                {
                    
    printf("%d ",i);
                    
    tong+=i;
                    
    dem+=1;
                }
            if(
    dem==0)
                
    printf("\nKhong co so nguyen to nao trong khoang (%d,%d)!\n\n"A,B);
            
                
        }
        if(
    A>B)
        {
            
    printf("\nCac so nguyen to trong khoang (%d,%d) la:\n"A,B);
            for(
    int i=B+1;i<A;i++)
                if(
    ktngto(i))
                {
                    
    printf("%d ",i);
                    
    tong+=i;
                    
    dem+=1;
                }
            if(
    dem==0)
                
    printf("\nKhong co so nguyen to nao trong khoang (%d,%d)!\n"B,A);
            
                
        }
        if(
    dem!=0)
            
    printf("\n\n\nTong cac so nguyen to la: %d",tong);
        
    getch();    
    }

    bool ktngto(int n)
    {
        if(
    n<=1)
            return 
    false;
        if(
    n==2)
            return 
    true;
        
    int bienchay=2,canbachai=0,phandu=0;
        
    canbachai=int(sqrt(n));
        
    bool ktnguyento=true;
        do
        {
            
    phandu=n%bienchay;
            if(
    phandu==0)
              
    ktnguyento=false;
        }while(
    ktnguyento==true&&bienchay++<=canbachai);
           return 
    ktnguyento;

    Cho mình hỏi ạ sao cái printf là để xuất ra màn hình nhưng mà mình thấy nó là câu lênh bên C++ vậy mình đang học C# phải chuyển thành console.writeline đúng ko ạ còn các %d là gì mình không học C++ nên ngu khoản này mong bạn giúp đỡ mình convert ra C#

  6. #6
    Ngày gia nhập
    04 2009
    Bài viết
    21

    Mặc định Cộng các số nguyên tố trong dãy A>B?

    Đây là bài em đã làm hoàn chỉnh dựa trên code C++ của Loveanygirls mong bạn check lại xem nó có chạy đúng không mình chạy thì không có lỗi gì cả !
    PHP Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace 
    cong_so_nguyen_to
    {
        class 
    Program
        
    {
            static 
    void Main(string[] args)
            {   
    lamlai:         
                
    int A ,,tong 0,dem 0,0;
            do{
                if(
    0)
                {
                    
    Console.Write("\n\n");
                }
                
    Console.Write("Nhap vao gia tri cua A: ");
                
    int.TryParse(Console.ReadLine(), out A);
                
    Console.Write("Nhap vao gia tri cua B: ");
                
    int.TryParse(Console.ReadLine(), out B);
                if(
    == B)
                {
                    
    Console.Write("\nVui long nhap A khac B!\n");
                    
    += 1;
                }
            }
            while(
    == B);
            if(
    B)
            {
                
    Console.Write("\nCac so nguyen to trong khoang ({0} den {1}) la:\n",,B);
                for(
    int i 1B;i++)
                {
                    if(
    songuyento(i))
                    {
                        
    Console.Write("{0} ",i);
                        
    tong += i;
                        
    dem += 1;
                    }
                }
                if(
    dem == 0)
                {
                    
    Console.Write("\nKhong co so nguyen to nao trong khoang ({0} den {1})!\n\n",,B);
                }
            }
            if(
    B)
            {
                
    Console.Write("\nCac so nguyen to trong khoang ({0} den {1}) la:\n",,B);
                for(
    int k 1;A;k++)
                {
                    if(
    songuyento(k))
                    {
                        
    Console.Write("{0} ",k);
                        
    tong += k;
                        
    dem += 1;
                    }
                }
                if(
    dem == 0)
                {
                    
    Console.Write("\nKhong co so nguyen to nao trong khoang ({0} den {1})!\n",,A);
                }
            }
            if(
    dem != 0)
            {
                
    Console.Write("\n\n\nTong cac so nguyen to la: {0}",tong);
            }
            
    Console.ReadLine();
            goto 
    lamlai;        
        }
        
    //Kiem tra so nguyen to duoc tap trung tai day !
        
    public static bool songuyento(int n)
        {
            if(
    <= 1)
            {
                return 
    false;
            }
            if(
    == 2)
            {
                return 
    true;
            }
            
    int bienchay 2,canbachai 0,phandu 0;
            
    canbachai = ( ( int ) ( Math.Sqrt(n)) );
            
    bool ktnguyento true;
            do{
                
    phandu bienchay;
                if(
    phandu == 0)
                {
                    
    ktnguyento false;
                }
            }
            while(
    ktnguyento == true && (bienchay)++ <= canbachai);
            return 
    ktnguyento;        
        }
             
            }    
        } 
    Anh em giúp em thu gọn code này tí em viết vụng quá nên dài thòn à !
    Đã được chỉnh sửa lần cuối bởi quangnhut123 : 10-04-2009 lúc 09:53 AM.

  7. #7
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Dài thế bạn, ngắn gọn hơn 1 chút nè:
    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3. #include <math.h>
    4. int ktnt(unsigned long n)
    5. {
    6.     for(unsigned long i=2;i<=sqrt(n);i++)
    7.         if(n%i==0) return 0;
    8.     return 1;
    9. }
    10. void tong_nt(unsigned long a,unsigned long b)
    11. {
    12.     unsigned long tong=0,j=0,min=(a<b)?a:b,max=(a>b)?a:b;
    13.     for(unsigned long i=(min>2)?min:2;i<=max;i++)
    14.         if(ktnt(i)){
    15.         printf("%lu ",i);
    16.         tong+=i;
    17.         j++;
    18.         }
    19.     if(j) printf("\n\nTong = %lu",tong);
    20.     else printf("Khong co SNT nao");
    21. }
    22. main()
    23. {
    24.     unsigned long a,b,tong;
    25.     printf("\nNhap A = ");
    26.     scanf("%lu",&a);
    27.     printf("\nNhap B = ");
    28.     scanf("%lu",&b);
    29.     tong_nt(a,b);
    30.     getch();
    31. }

  8. #8
    Ngày gia nhập
    04 2009
    Bài viết
    21

    Code bạn viết trên C++ mình không hiểu gì ráo nhiều biến lạ quá bạn giải thích giùm mình hiểu đi ! Nếu mà nhắm mắt ngồi chuyển qua C# như vầy thì có lỗi ở 2 dòng :
    PHP Code:
    int.TryParse(Console.ReadLine(), out a);
    int.TryParse(Console.ReadLine(), out b); 
    PHP Code:
    if (j
    nó báo không chuyển sang giá trị uint sang bool được !

    PHP Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace 
    ConsoleApplication1
    {
        public class 
    Globals
        
    {
            public static 
    int ktnt(uint n)
            {
                for (
    uint i 2;
                
    <= Math.Sqrt(n); (i)++)
                {
                    if (
    == 0)
                    {
                        return 
    0;
                    }
                }
                return 
    1;
            }
            public static 
    void tong_nt(uint auint b)
            {
                
    uint tong 00min bmax b;
                for (
    uint i min min 2;
                
    <= max; (i)++)
                {
                    if (
    ktnt(i) != 0)
                    {
                        
    Console.Write("{0}u "i);
                        
    tong += i;
                        (
    j)++;
                    }
                }
                if (
    j)
                {
                    
    Console.Write("\n\nTong = {0}u"tong);
                }
                else
                {
                    
    Console.Write("Khong co SNT nao");
                }
            }
            class 
    Program
            
    {
                static 
    void Main(string[] args)
                {
                    
    uint abtong;
                    
    Console.Write("\nNhap A = ");
                    
    int.TryParse(Console.ReadLine(), out a);
                    
    Console.Write("\nNhap B = ");
                    
    int.TryParse(Console.ReadLine(), out b);
                    
    tong_nt(ab);
                }
            }
        }

    Đã được chỉnh sửa lần cuối bởi quangnhut123 : 11-04-2009 lúc 09:33 AM.

  9. #9
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Mình ko biết C# nên ko convert cho bạn được, mình translate tàm tạm cho bạn hiểu vậy.

    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3. #include <math.h>
    4.  
    5. /*hàm kiểm tra xem n có là số NT ko, nếu đúng thì trả về 1, sai trả về 0 */
    6. int ktnt(unsigned long n)
    7. {
    8.     for(unsigned long i=2;i<=sqrt(n);i++)
    9.         if(n%i==0) return 0;
    10.     return 1;
    11. }
    12.  
    13. /*Hàm tính tổng các SNT từ A->B */
    14. void tong_nt(unsigned long a,unsigned long b)
    15. {
    16.     unsigned long tong=0,j=0,min=(a<b)?a:b,max=(a>b)?a:b;
    17.     /*min, max ở đây là min max của 2 số A,B vì cho biến i chạy từ bé đến lớn, mà ko rõ là chạy từ A hay B --> xác định đoạn [A,B] */
    18.    
    19.     /*Cho i chạy từ min ->max, nếu i là SNT thì cộng dồn vào biến [U]tong[/U] */
    20.     for(unsigned long i=(min>2)?min:2;i<=max;i++)
    21.         if(ktnt(i)[U]!=0[/U]){             /*ktnt(i)!=0 tức là ==1 (là SNT) */
    22.         printf("%lu ",i);
    23.         tong+=i;
    24.         j++;
    25.         }
    26.     if(j) printf("\n\nTong = %lu",tong);
    27.     else printf("Khong co SNT nao");
    28. }
    29. main()
    30. {
    31.     unsigned long a,b,tong;
    32.     printf("\nNhap A = ");
    33.     scanf("%lu",&a);
    34.     printf("\nNhap B = ");
    35.     scanf("%lu",&b);
    36.     tong_nt(a,b);
    37.     getch();
    38. }

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

    Bó tay lun hjx hjx mình mới học 4 ngày h không biết dịch sao cho phải nữa hjx đành xài code mình viết từ C++ dài trên kia vậy !

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

  1. Kiểm tra xem trong mảng các số nguyên có tồn tại số nguyên lẻ hayko?
    Gửi bởi caphetim trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 8
    Bài viết cuối: 06-05-2013, 03:56 PM
  2. Database cách nhập nhiều nguyên liệu cho một món ăn trong một form quản lý nguyên liệu món ăn
    Gửi bởi mamachue92 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 31-10-2012, 09:55 AM
  3. Tối ưu Code nhập số nguyên dương rồi đảo ngược số nguyên dương vừa nhập trong C
    Gửi bởi tyrant trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 10
    Bài viết cuối: 07-10-2012, 11:07 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. tìm số nguyên tố có trong mảng 2 chiều, tính tổng các số nguyên tố đó??
    Gửi bởi lesliuton01 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 08-06-2010, 10:21 AM

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