算法15---数论6---素数,回文素数 分解质因素
算法15---数论6---素数,回文素数 分解质因素
1 /* 2 题目:素数,回文素数 3 author taoliu——alex 2016.10 number4 4 5 主要实现: 6 判断素数,判断回文素数 7 */ 8 9 10 11 #include <stdio.h> 12 #include <math.h> 13 14 15 16 //素数 17 18 19 int isprime(int a) 20 { 21 for (int i = 2; i < a; i++) 22 { 23 if (a%i==0) 24 { 25 return 0; 26 } 27 28 } 29 return 1; 30 } 31 32 33 34 //判断素数,判断回文素数 35 int huiwen(int n) 36 { 37 int count=0 ;//判断n的位数 38 int k=1; 39 int sum,num; 40 while(k>0) 41 { 42 k=n-(int)pow(10,count); 43 count++; 44 } 45 int weishu=count-1; 46 for (int i = 0; i < weishu; i++) 47 { 48 int temp=num%10; 49 sum=sum+temp*((int)pow(10,weishu-1-i)); 50 num=(num-temp)/10; 51 } 52 int t=sum; 53 if (t==n) 54 { 55 if (isprime(n)) 56 { 57 return 1; 58 } 59 else 60 return 0; 61 } 62 else 63 return 0; 64 } 65 66 67 68 //平方回文素数 69 int pingfanghuiwen(int n) 70 { 71 int m=huiwen(n*n); 72 if (m==1) 73 { 74 return 1; 75 } 76 else 77 return 0; 78 } 79 80 int main() 81 { 82 printf("please input the data you want to judge\n"); 83 int judge; 84 scanf("%d",&judge); 85 //剩下的就是判断了,就不多说了; 86 return 0; 87 }
1 /* 2 题目:分解质因子 3 author taoliu——alex 2016.10 number4 4 5 */ 6 7 8 #include <stdio.h> 9 #include <math.h> 10 11 12 13 //素数 14 15 16 int isprime(int a) 17 { 18 for (int i = 2; i < a; i++) 19 { 20 if (a%i==0) 21 { 22 return 0; 23 } 24 25 } 26 return 1; 27 } 28 29 30 31 void primerfactor(int n) 32 { 33 int i; 34 if (isprime(n)) 35 { 36 printf("%d\n", n); 37 } 38 else 39 { 40 for ( i = 2; i <n; i++) 41 { 42 if (n%i==0) 43 { 44 printf("%d *",i); 45 if (isprime(n/i)) 46 { 47 printf("%d\n",n/i); 48 break; 49 } 50 else 51 primerfactor(n/i); 52 break; 53 } 54 } 55 } 56 } 57 58 int main() 59 { 60 int n; 61 printf("please input a number \n"); 62 scanf("%d",&n); 63 printf("n=%d\n",n ); 64 printf("the factor is \n"); 65 primerfactor(n); 66 return 0; 67 }