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

Đề tài: Các thao tác trên số nguyên trong lập trình C

  1. #1
    Ngày gia nhập
    10 2006
    Nơi ở
    Hà Nội
    Bài viết
    146

    Mặc định Các thao tác trên số nguyên trong lập trình C

    Đây là bài các thao tác trên số nguyên:

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<math.h>
    4. #include<ctype.h>
    5. #include<string.h>
    6. #include<stdlib.h>
    7. //========================================
    8. void Doicoso(int n,int b)
    9. {
    10.     int s[10],o,j,i=0,k=0;
    11.     printf("\nNhap mot so he co so 10(Dec) n=");scanf("%d",&n);
    12.     printf("\nNhap co so can chuyen sang (b code): b=");scanf("%d",&b);
    13.     o=n;
    14.     while(n!=0)
    15.        {
    16.           k=n%b;n=n/b;
    17.           if(0<=k && k<=9) s[i++]= 48+k;
    18.           else
    19.            s[i++]=(65+k-10);
    20.  
    21.        }//end while
    22.     printf("\n\nKet qua la:%d(dec) chuyen sang %d(code) la:",o,b);
    23.     for(j=i-1;j>=0;j--)
    24.     printf("%c",s[j]);
    25. }//end function
    26. //==============================================================
    27. //Kiem tra 1 so co phai la 1 so nguyen to hay khong?
    28. int NguyenTo(long x)
    29. {
    30.     long i,t=0;
    31.     for(i=2;i<=sqrt(x);i++)
    32.     {
    33.        if(x%i==0) { t=0;break;}
    34.     else t=1;
    35.     }//end for
    36.  return(t);
    37. }//end function
    38. //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    39. void DayNguyenTo(long n)
    40. {
    41.     long i;
    42.     for(i=2;i<=n;i++)
    43.     {
    44.         if(NguyenTo(i)) printf("%5ld",i);
    45.     }//end for
    46. }//end function
    47. //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    48. void Messon(long n)
    49. {
    50.      long i;
    51.      for(i=2;i<=n;i++)
    52.       {
    53.          if(NguyenTo(pow(2,i)-1)) printf("%5ld",i);
    54.       }
    55. }
    56. //=========================================================
    57.   void so_hoan_thien()
    58.     {
    59.        unsigned long s,n,i,j;
    60.        printf("\nNhap so N = ");
    61.        scanf("%ld",&n);
    62.        for(i=2;i<=n;i++)
    63.      {
    64.       s=0;
    65.       for(j=1;j<i;j++)
    66.         if(i%j==0) s=s+j;
    67.       if(s==i)printf("\n%ld",s);
    68.      }
    69.      //getch();
    70.    }
    71. //========================================================
    72.    void cap_so_huu_nghi()
    73.      {
    74.        unsigned long s1,s2,n,m,k,i,j;
    75.        printf("\nNhap so N = ");
    76.        scanf("%ld",&n);
    77.      for(i=2;i<=n;i++)
    78.       {
    79.        s1=0;
    80.        for(k=1;k<=i/2+1;k++)
    81.          if(i%k==0) s1+=k;
    82.        for(j=2;j<=i;j++)
    83.         {
    84.            s2=0;
    85.            for(m=1;m<=j/2+1;m++)
    86.            if(j%m==0) s2+=m;
    87.            if(s1==j && s2==i) printf("\n (%ld,%ld)",i,j);
    88.  
    89.          }
    90.     }
    91.    }
    92. //=========================================================
    93.  void paliom()
    94.     {
    95.  
    96.     unsigned long n,i,j;
    97.     int dem;
    98.     char s[12];
    99.     dem=0;
    100.     printf("\nNhap N : ");
    101.     scanf("%ld",&n);
    102.     printf("Cac so palidrom nho hon %d la : ",n);
    103.     for(i=1;i<=n;i++)
    104.     {
    105.       ltoa(i,s,10);
    106.       strrev(s);
    107.       j=atol(s);
    108.       if(i==j)
    109.         {
    110.         printf("\n%d",i);
    111.         dem++;
    112.         if(dem%20==0)
    113.         getch();
    114.         }
    115.     }
    116.    }
    117. //=================================================
    118. void main()
    119. {
    120.         long n;
    121.     int b;
    122.         clrscr();
    123.         textmode(C80);
    124.        textcolor(YELLOW);
    125.        textbackground(BLUE);
    126.        window(1,1,80,25);
    127.  
    128.           while(1)
    129.    {clrscr();
    130.  
    131.         printf("\n Tap thao t*c voi So Nguyˆn") ;
    132.         printf("\nÞÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÝ");
    133.         printf("\n\n Menu\nÈÍÍÍͼ");
    134.     printf("\n1. Doi so N thanh so o he co so bat ki bó16");
    135.     printf("\n2. Liet ke ca so Nguyen To ó n");
    136.     printf("\n3. Liet ke cac so Messon ó n");
    137.         printf("\n4. Liet ke cac so hoan thien ó n");
    138.         printf("\n5. Liet ke cac cap so huu nghi ó n");
    139.         printf("\n6. Liet ke cac so Paliom ó n");
    140.     printf("\nz. Tro ve MENU ch¡nh");
    141.     printf("\n\nHay chon chuc nang 1 -> z: ");
    142.       char  ch1=toupper(getchar());
    143.     if(ch1=='Z') break;
    144.     switch(ch1)
    145.      {
    146.           case '1':
    147.                printf("\n\n============================\n\n");
    148.                printf("DOI 1 SO N TU HE THAP PHAN SANG HE CO SO BAT KI b ó 16\n") ;
    149.            Doicoso(n,b);
    150.                getch();
    151.                break ;
    152.           case '2':
    153.                printf("\n\n=============================\n\n");
    154.                printf("LIET KE CAC SO NGUYEN TO ó N");
    155.                printf("\nHay nhap n:");scanf("%ld",&n);
    156.                if(n<2) printf("\nKhong the tim ra ket qua!");
    157.                else
    158.                {
    159.                 if(n==2)printf("Cac so Nguyen To ó n: 2");
    160.                 if(n==3||n==4) printf("Cac so nguyen to ó n la: 2  3");
    161.                 if(n>=5){
    162.                 printf("Cac so nguyen to ó %ld la:\n2  3",n);
    163.                 DayNguyenTo(n); }
    164.  
    165.                 }
    166.                 getch();
    167.                 break;
    168.       case '3':
    169.                 printf("\n\n==============================\n\n");
    170.                 printf("LIET KE CAC SO MESSON ó N");
    171.                 printf("\nNhap N=");scanf("%ld",&n);
    172.                 if(n>30) printf("\n\nSo N qua lon, khong du bo nho de tinh toan!");
    173.                 else {
    174.                 printf("\nCac so Messon ó n la:\n2  ");
    175.                 Messon(n);  }
    176.                getch();
    177.            break;
    178.       case '4':
    179.                 printf("\n\n===========================\n\n");
    180.                 printf("LIET KE CAC SO HOAN THIEN ó N");
    181.                 so_hoan_thien();
    182.                 getch();
    183.                 break;
    184.           case '5':
    185.                 printf("\n\n==========================\n\n");
    186.                 printf("LIET KE CAC CAP SO HUU NGHI ó N");
    187.                 cap_so_huu_nghi();
    188.                 getch();
    189.                 break;
    190.           case '6':
    191.                 printf("\n\n=========================\n\n");
    192.                 printf("LIET KE CAC SO PALIOM ó N");
    193.                 paliom();
    194.                 getch();
    195.                 break;
    196.      }
    197.      //getch();
    198.     }
    199. //================================================================================
    200. }//end main

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

    //Kiem tra 1 so co phai la 1 so nguyen to hay khong?
    int NguyenTo(long x)
    {
    long i,t=0;
    for(i=2;i<=sqrt(x);i++)
    {
    if(x%i==0) { t=0;break;}
    else t=1;
    }//end for
    return(t);
    }//end function
    => nếu x là số chẵn thì có thể kết luận ngay x không là số nguyên tố. Ngược lại nếu x là số lẻ thì chỉ cần thử i với i là số lẻ (không cần thử với i là số chẵn)

  3. #3
    Ngày gia nhập
    10 2006
    Nơi ở
    Hà Nội
    Bài viết
    146

    Mặc định re

    Trích dẫn Nguyên bản được gửi bởi bete
    => nếu x là số chẵn thì có thể kết luận ngay x không là số nguyên tố. Ngược lại nếu x là số lẻ thì chỉ cần thử i với i là số lẻ (không cần thử với i là số chẵn)
    Rất cảm ơn đóng góp của bạn.

    Vậy chúng ta chỉ cần thao tác kiểm tra: nếu x chẵn -> next
    else thì kiểm tra như trên!

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

    Thân gửi PoPoPOPO,

    Vậy chúng ta chỉ cần thao tác kiểm tra: nếu x chẵn -> next
    else thì kiểm tra như trên!
    => tui nghĩ nghĩ là nên thay "for(i=2;i<=sqrt(x);i++)" bằng "for(i=3;i<=sqrt(x);i+=2)"

    -thân

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

    nếu x là số chẵn thì có thể kết luận ngay x không là số nguyên tố.
    Nếu x==2 thì sao đây? he he.
    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!

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

    Mặc định Các thao tác trên số nguyên trong lập trình C

    Trích dẫn Nguyên bản được gửi bởi Dreaminess
    Nếu x==2 thì sao đây?
    => hỏi tức là đã trả lời rồi (cám ơn Dreminess đã chỉ ra chỗ sai )

    -thân

  7. #7
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Không rõ trước đây em có đọc trên báo Toán học nhà trường nói rằng các nhà Toán học Ấn Độ tìm ra được một thuật toán kiểm tra số nguyên lớn có phải là số nguyên tố hay không chỉ bằng 13 dòng lệnh ,không biết có ai có được thuật toán đó không

  8. #8
    Ngày gia nhập
    10 2006
    Nơi ở
    Hà Nội
    Bài viết
    146

    Thế cái thuật toán trên của em dài bao nhiêu dòng lệnh.
    Rõ ràng là ít hơn 13 mà!

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

  1. Đố:một vài thú vị về thứ tự các số và phép toán trên kiểu số nguyên
    Gửi bởi Anonymous trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 23-04-2011, 05:46 PM
  2. 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
  3. Lập trình C++ | Tính tổng số nguyên tố trong mảng trên C++??
    Gửi bởi lesliuton01 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 12
    Bài viết cuối: 22-08-2010, 03:06 PM
  4. Liệt kê và đếm số nguyên tố trong ma trận trên ngôn ngữ C
    Gửi bởi toend2008 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 13
    Bài viết cuối: 08-12-2009, 01:14 PM
  5. Thao tác trên số nguyên lớn (cộng, trừ, nhân) bằng C++. Các anh chị góp ý nhé!
    Gửi bởi changtrai050188 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 3
    Bài viết cuối: 03-05-2009, 05:52 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