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