首页 > 代码库 > 判断一个数是偶数还是素数 做相应处理并排序输出

判断一个数是偶数还是素数 做相应处理并排序输出

 1 //有10个两位整数,把这些数作以下变化,如果它是素数,
 2 //则把它乘以2,若它是偶数则除以2,其余的数减1,
 3 //请将变化后的10个数按从小到大的次序打印出来。
 4 //2017.3.7
 5 #include <stdio.h>
 6 #include <stdlib.h>
 7 #include <math.h>
 8 /*
 9 判断整数n是否为质数
10 */
11 int isPrimeNum(int n)
12 {
13     int isPrime = 1;//作为标记 是素数则为1 否0
14     if (n == 1)
15     {
16         return 0;
17     }
18     for (int i = 2; i <= (int)(sqrt((double)n)); i++)
19     {
20         if (n % i == 0)
21         {
22             isPrime = 0;
23             break;
24         }
25     }
26     return isPrime;
27 }
28 /*
29 冒泡法实现数组排序
30 */
31 void sort23(int *a, int n)
32 {
33     
34     for (int i = 0; i < n - 1; i++)
35     {
36         for (int j = 0; j < n - 1 - i; j++)
37         {
38             if (a[j] > a[j + 1])
39             {
40                 a[j] = a[j] ^ a[j + 1];
41                 a[j + 1] = a[j] ^ a[j + 1];
42                 a[j] = a[j] ^ a[j + 1];
43             }
44         }
45     }
46 }
47 void main()
48 {
49     
50     int a[10];
51     for (int i = 0; i < 10; i++)
52     {
53         a[i] = 11 + rand()%100;
54         if (isPrimeNum(a[i]))
55         {
56             a[i] *= 2;
57         }
58         else if (a[i] % 2 == 0)
59         {
60             a[i] /= 2;
61         }
62         else
63         {
64             a[i] -= 1;
65         }
66     }
67 
68     sort23(a, 10);
69     for (int i = 0; i < 10; i++)
70     {
71         printf("%-5d", a[i]);
72     }
73     printf("\n");
74     system("pause");
75 }

技术分享

判断一个数是偶数还是素数 做相应处理并排序输出