首页 > 代码库 > 【数据结构】C语言实现,寻找n个数字中的所有素数
【数据结构】C语言实现,寻找n个数字中的所有素数
1 #include <iostream> 2 #include <stdio.h> 3 #include <math.h> 4 5 /* run this program using the console pauser or add your own getch, system("pause") or input loop */ 6 7 //判断用户输入的数据是否大于2的正整数 8 bool isNaN(int number) { 9 if(number>2)10 return true;11 else 12 return false;13 }14 15 16 //输入数据的函数 17 int InNumber(){18 int number;19 printf("请输入一个大于2的正整数");20 scanf("%d",&number);21 if(isNaN(number))22 return number;23 else24 //让用户重新输入25 InNumber(); 26 }27 28 //判断一个数字大于2的正整数是否为素数 29 bool prime(int number){30 31 int numI=2;32 double sum=0;33 34 do{35 sum=number%numI;36 if(sum==0){37 return true;38 break;39 }else{40 ++numI;41 }42 }while(numI<number); 43 44 return false;45 }46 47 //循环n次数 48 void more(int number){49 int num[number];50 int j=0;51 for(int i=3;i<=number;++i){52 if(prime(i)){53 num[j]=i;54 ++j;55 } 56 else{57 } 58 }59 60 61 62 63 /*int numI=3;64 bool bo=prime(numI);65 int numPrime[number];66 int i=0;67 if(bo){68 numPrime[i]=numI;69 ++i;70 }else{71 //放弃 72 }73 74 if(numI<number){75 ++numI;76 more(numI); 77 } */78 }79 80 int main(int argc, char** argv) {81 82 //1:输入数据83 //1:确保数字大于2的正整数 isNaN() 84 //2:判断数据是否为素数85 //1:使用for(),让程序提供n次检测的机会86 //2:使用prime()判断每个数据是否为素数 87 //3:输出结果 88 89 int number=InNumber();90 more(number);91 return 0;92 }
------------------------------------------------------------------------------------
1 #include <iostream> 2 #include <stdio.h> 3 #include <math.h> 4 5 //判断用户输入的数据是否大于2的正整数 6 bool isNaN(int number) { 7 if(number>2) 8 return true; 9 else10 return false;11 }12 13 14 //输入数据的函数15 int InNumber() {16 int number;17 printf("请输入一个大于2的正整数");18 scanf("%d",&number);19 if(isNaN(number))20 return number;21 else22 //让用户重新输入23 InNumber();24 }25 26 //判断一个数字大于2的正整数是否为素数27 bool prime(int number) {28 29 int numI=2;30 double sum=0;31 32 do {33 sum=number%numI;34 if(sum==0) {35 return true;36 break;37 } else {38 ++numI;39 }40 } while(numI<number);41 42 return false;43 }44 45 //按每行最多10个元素的输出素数 46 void OutNumber(int num[],int primeJ){47 int i=0;48 do{49 printf("%d\t",num[i]);50 ++i;51 52 //当连续输出10个元素时,就跳行 53 if(i%10==0)54 printf("\n"); 55 }while(i<primeJ);56 }57 58 //n次循环,处理每个数字,记录素数 59 void more(int number) {60 int num[number];61 int primeJ=0; //记录素数的数量62 for(int i=3; i<=number; ++i) {63 if(prime(i)) {64 num[primeJ]=i;65 ++primeJ;66 } else {67 // 记录合数的数量68 }69 }70 71 OutNumber(num,primeJ); 72 }73 74 int main(int argc, char** argv) {75 76 //1:输入数据77 //1:确保数字大于2的正整数 isNaN()78 //2:判断数据是否为素数79 //1:使用for(),让程序提供n次检测的机会80 //2:使用prime()判断每个数据是否为素数81 //3:输出结果82 83 int number=InNumber(); //输入 84 more(number); //中间处理 85 86 87 //OutNumber(); //输出 88 89 return 0; 90 }91
---------------------------------------------------------------------------------------------------------------------
第三个方式
1 #include <iostream> 2 #include <stdio.h> 3 #include <math.h> 4 5 //判断用户输入的数据是否大于2的正整数 6 bool isNaN(int number) { 7 if(number>2) 8 return true; 9 else 10 return false; 11 } 12 13 14 //输入数据的函数 15 int InNumber() { 16 int number; 17 printf("请输入一个大于2的正整数"); 18 scanf("%d",&number); 19 if(isNaN(number)) 20 return number; 21 else 22 //让用户重新输入 23 InNumber(); 24 } 25 26 //判断一个数字大于2的正整数是否为素数 27 bool prime(int number) { 28 29 int numI=2; 30 double sum=0; 31 32 do { 33 sum=number%numI; 34 if(sum==0) { 35 return true; 36 break; 37 } else { 38 ++numI; 39 } 40 } while(numI<number); 41 42 return false; 43 } 44 45 //按每行最多10个元素的输出素数 46 void OutNumber(int num[],int primeJ){ 47 int i=0; 48 do{ 49 printf("%d\t",num[i]); 50 ++i; 51 52 //当连续输出10个元素时,就跳行 53 if(i%10==0) 54 printf("\n"); 55 }while(i<primeJ); 56 } 57 58 //n次循环,处理每个数字,记录素数 59 int more(int number) { 60 int num[number]; 61 int primeJ=0; //记录素数的数量 62 for(int i=3; i<=number; ++i) { 63 if(prime(i)) { 64 // 记录合数 65 } else { 66 num[primeJ]=i; 67 ++primeJ; 68 } 69 } 70 71 OutNumber(num,primeJ); 72 } 73 74 int main(int argc, char** argv) { 75 76 //1:输入数据 77 //1:确保数字大于2的正整数 isNaN() 78 //2:判断数据是否为素数 79 //1:使用for(),让程序提供n次检测的机会 80 //2:使用prime()判断每个数据是否为素数 81 //3:输出结果 82 83 /*************************************************** 84 主支干上, 85 设计模式 86 函数接收外界的数据,使用完后,反馈数据 87 这种一进一去的函数设计方式,称之为 什么好呢! 88 分支干上, 89 用来辅助主支干的函数的需要 90 *************************************************** 91 目的:变量的数据在函数内处理,函数外的数据由函数来处理 92 意料发现:这样全局变量就不用存在了 93 从函数来看:函数从外界获取数据,并向外界反馈数据 94 设计模式:略学了设计模式,不知道这种方式算什么方式 95 96 ******************************************************/ 97 int number=InNumber(); //输入函数,函数使用完,返回数值 98 more(number); //中间处理, 可惜c无法直接返回数组,用指针的话,又说数组长度要用固定长度, 99 //需要用指针的话,或许可以让它返回数据 100 101 //OutNumber(); //输出 ,因为more(number)没有返回数据,此方法待定 102 103 return 0; 104 }105
【数据结构】C语言实现,寻找n个数字中的所有素数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。