Thứ Ba, 1 tháng 12, 2015

Bài 31: Cho số nguyên dương n. Kiểm tra xem n có phải là số nguyên tố hay không (Nhiều Cách)

Bài 31: Cho số nguyên dương n. Kiểm tra xem n có phải là số nguyên tố hay không (Nhiều Cách)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
#include <conio.h>

int main()
{
 int i, n;
 printf("\nNhap n: ");
 scanf("%d", &n);

 if(n < 2)
  printf("\nSo %d khong phai la so nguyen to", n);
 else if(n == 2)
  printf("\nSo %d la so nguyen to", n);
 else if(n % 2 == 0)
  printf("\nSo %d khong phai la so nguyen to", n);
 else
 {
  for(i = 3; i <= n; i+=2)
  {
   if(n % i == 0)
    break;
  }
  if(i == n)
   printf("\nSo %d la so nguyen to", n);
  else
   printf("\nSo %d khong phai la so nguyen to", n);
 }
  


 getch();
 return 0;
}

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>

int kTraSoNguyenTo(int n)
{
   if (n < 2) return 0;
   for(int i = 2; i * i <= n; i++) //i * i <= n <=> i sqrt(n)(math.h)
      if(n % i == 0) return 0;     //i <= n
   return 1;      //i <= n / 2
}

void main()
{
 int n, i = 2;
   printf("Nhap n: "); 
          scanf("%i", &n);
 if(kTraSoNguyenTo(n))
          printf("%d la snt.\n",n);
        else
          printf("%d khong la snt.\n",n);
 getch();
}
004