首页 > 其他分享 >1-32

1-32

时间:2022-09-20 09:35:00浏览次数:37  
标签:10 bArr int 32 素数 num bArrLen

1、

 

 分析:

素数的概念:素数又叫质数。素数,指的是“大于1的整数中,只能被1和这个数本身整除的数”。

合数的概念:大于1的整数中,除了1和自身外,还能被其他正整数整除的数。也可表述为:在大于1的整数中,除了1和自身两个约数外,还有其他约数的正整数。

 1 # include <stdio.h>
 2 # include <math.h>
 3 int isPrime(int num) {
 4     //素数:大于1,除了1和本身,无其他因子
 5     //合数:大于1,除了1和本身,还有其他因子
 6     if (num == 1) {
 7         return 0;
 8     }
 9     else {
10         int m = sqrt(num);
11         for (int i = 2; i <= m; i++) {
12             if (num % m == 0) {
13                 return 0;//合数
14             }
15         }
16         return 1;//质数
17     }
18         
19 }
20 int main() {
21     int num = 0;
22     scanf_s("%d", &num);
23     while (num != -1) {
24         int ret = isPrime(num);
25         if (ret == 1) {
26             printf("is prime\n");
27         }
28         else {
29             printf("no\n");
30         }
31         scanf_s("%d", &num);
32     }
33     return 0;
34 }
View Code

2、

 

 代码:

 1 # include <stdio.h>
 2 /// <summary>
 3 /// 把当前num的各位数组存放到数组bArr中,并存放位数
 4 /// </summary>
 5 /// <param name="num"></param>
 6 /// <param name="bArr"></param>
 7 /// <param name="bArrLen"></param>
 8 void getPerBite4(int num,int bArr[],int *bArrLen) {
 9     while (num>0)
10     {
11         bArr[*bArr] = num % 10;
12         *bArrLen +=1;//这里不能使用++,使用++就是指针的递增
13         num /= 10;
14     }
15 }
16 
17 /// <summary>
18 /// 求x的y次方
19 /// </summary>
20 /// <param name=""></param>
21 /// <param name=""></param>
22 /// <returns></returns>
23 int pow(x, y) {
24     int mul = 1;
25     for (int i = 1; i <= y; i++) {
26         mul *= x;
27     }
28     return mul;
29 }
30 
31 /// <summary>
32 /// 判断是不是水仙数
33 /// </summary>
34 /// <param name="num"></param>
35 /// <param name="bArr"></param>
36 /// <param name="bArrLen"></param>
37 void isNarNum(int num, int bArr[], int bArrLen) {
38     int sum = 0;
39     for (int i = 0; i < bArrLen; i++) {
40         sum += pow(bArr[i], bArrLen);
41     }
42     if (sum == num) {
43         printf("%d\n", num);
44     }
45 }
46 
47 int main() {
48     for (int i = 1; i <= 2000; i++) {
49         int bArr[10] = { 0 };
50         int bArrLen = 0;
51         getPerBite4(i, bArr, &bArrLen);
52         isNarNum(i, bArr, bArrLen);
53     }
54     return 0;
55 }
View Code

结果:

3、

 

 代码:

 

结果:

 

4、

 

 

5、

 

标签:10,bArr,int,32,素数,num,bArrLen
From: https://www.cnblogs.com/kezhang/p/16709933.html

相关文章