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

Đề tài: In k số nguyên tố đầu tiên có tổng các chữ số là chắn trong mảng, lỗi chỉ kiểm tra được với số đầu tiên?

  1. #1
    Ngày gia nhập
    02 2010
    Bài viết
    2

    Mặc định In k số nguyên tố đầu tiên có tổng các chữ số là chắn trong mảng, lỗi chỉ kiểm tra được với số đầu tiên?

    In k số nguyên tố đầu tiên có tổng các chữ số là chẵn trong mảng.
    Em code như sau và chỉ kiểm tra được với số đầu tiên. K biết sai chỗ nào. Mong các sư huynh giúp đỡ.


    Code:
    #include <math.h>
    #include <stdio.h>
    #include <conio.h>
    
    int ngto(int n)
    {
        int i;
        float k;
      
        k=sqrt(n);
        if (n<2) return 0;{
        for (i=2;i<=k; i++)
            if (n%i==0) return 0;
        return 1;}
    }
    
    int tong(int n)
    {
    	int k, tong;
    	while (n)
    	{
    		k=n%10;
    		n/=10;
    		tong+=k;
    	}
    	return tong;
    }
    
    int main()
    {
        int a[20],i,n,j,dem=0;
    
        printf("Nhap so pt cua mang: ");
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {           
            printf("Nhap phan tu thu %d     ",i);
            scanf("%d",&a[i]);             
        }
        
        printf("\nMang vua nhap : ");  
        for(i=1;i<=n;i++)
        {
            printf("%d   ",a[i]); 
        }   
        
        printf("\nTong : ");
        for(i=1;i<=n;i++)
        {
            printf("%d   ",tong(a[i]));
        }
           
        printf("\nCac so nguyen to :   ");      
        for(i=1;i<=n;i++)
           if ((ngto(a[i]) == 1) && (tong(a[i]) % 2 == 0))
           printf("%d   ",a[i]);                            
        getch();  
        return 0;     
        
    }

  2. #2
    Ngày gia nhập
    02 2012
    Bài viết
    5

    chỗ tính tổng bạn phải khởi tạo tong=0

  3. #3
    Ngày gia nhập
    11 2012
    Nơi ở
    Recycle Bin.
    Bài viết
    1

    Trích dẫn Nguyên bản được gửi bởi ncn1992vn Xem bài viết
    Code:
    int ngto(int n)
    {
        int i;
        float k;
      
        k=sqrt(n);
        if (n<2) return 0;{
        for (i=2;i<=k; i++)
            if (n%i==0) return 0;
        return 1;}
    }
    Code kiểm tra số nguyên tố của bạn sai rồi, ở chỗ for phải là : for (i = 2 ; i < k ; ++i)

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

    Code kiểm tra số nguyên tố của bạn sai rồi, ở chỗ for phải là : for (i = 2 ; i < k ; ++i)
    Trả lời cùng với trích dẫn
    Sao lại sai?
    Bạn thử nhập vào số 9 xem thử nó là số nguyên tố hay không??


    C Code:
    1. sqrt(n);
    Phải ép về kiểu float hoặc double nha.

    Dưới đây là protype của hàm sprt:

    C Code:
    1.  double sqrt (      double x );
    2.       float sqrt (       float x );
    3. long double sqrt ( long double x );
    C Code:
    1. while (!silly)
    2.     cout<<"Study everything !";

  5. #5
    Ngày gia nhập
    02 2010
    Bài viết
    2

    Mặc định Phần SNT của em chính xác rồi.

    Trích dẫn Nguyên bản được gửi bởi kimlama Xem bài viết
    Sao lại sai?
    Bạn thử nhập vào số 9 xem thử nó là số nguyên tố hay không??



    Phải ép về kiểu float hoặc double nha.

    Dưới đây là protype của hàm sprt:

    C Code:
    1.  double sqrt (      double x );
    2.       float sqrt (       float x );
    3. long double sqrt ( long double x );

    Em gán k = float rồi đó.
    Phần SNT của em chính xác rồi.
    Cái em thắc mắc là tại sao hàm tổng chỉ đúng với "duy nhất" số đầu tiên còn từ số thứ 2+ trờ đi thì k hoạt đông. Nên khi in ra nó in cả số có tổng lẻ luôn...

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

    Mặc định In k số nguyên tố đầu tiên có tổng các chữ số là chắn trong mảng, lỗi chỉ kiểm tra được với số đầu tiên?

    Em gán k = float rồi đó.
    Phần SNT của em chính xác rồi.
    Cái em thắc mắc là tại sao hàm tổng chỉ đúng với "duy nhất" số đầu tiên còn từ số thứ 2+ trờ đi thì k hoạt đông. Nên khi in ra nó in cả số có tổng lẻ luôn...
    Ý mình nói là ép kiểu N bạn à. Còn hàm tính tổng của vì sao không hoạt động thì bạn kingrain94 đã nói rồi. Mà mình nghĩ không nên đặt tên biến trùng với tên hàm.
    C Code:
    1. while (!silly)
    2.     cout<<"Study everything !";

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. Tìm phần tử nguyên tố đầu tiên trong mảng
    Gửi bởi mremty trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 17-12-2011, 10:49 PM
  3. viết hàm chèn x vào trước phần tử có gí trị là số nguyên tố đầu tiên trong mảng
    Gửi bởi bobobo 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-10-2010, 07:24 PM
  4. Tìm số nguyên dương đầu tiên trong mảng
    Gửi bởi phonghieu45 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 14
    Bài viết cuối: 04-01-2010, 10:50 AM
  5. Đệ quy trên C | Tìm phần tử dương đầu tiên trong mảng các số nguyên
    Gửi bởi huhuhuhu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 05-07-2009, 07:55 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