C语言求素数的不同解法
来源:互联网 发布:pc6软件 编辑:程序博客网 时间:2024/05/16 11:53
C语言求素数的不同解法,不同编码。不同的编码对应不同的效率。
1、求a到b之间的素数:
(1)一般的:
#include "stdio.h"void main(){ int a,b; int i,n; int flag=1; printf("请输入下限:"); scanf("%d",&a); printf("请输入上限:"); scanf("%d",&b); printf("%d到%d之间的素数为:",a,b); for (i=a;i<=b;i++) { flag=1; for (n=2;n<i;n++) { if (i%n==0) { flag=0; } } if ((flag==1)&&(i!=1)) { printf("%d \n",i); } }}
(2)、高效的:
#include <stdio.h>#include <math.h>int main(){ int a, b, n; int na,nb; int i; printf("please input a:\n"); scanf("%d",&na); printf("please input b:\n"); scanf("%d",&nb); i=1; for (a =na; a <=nb; a++) { for (b = 2; b <= sqrt(a) && a % b != 0; b++); if (b > sqrt(a)){ //开方,减少复杂度。 printf("%d:%d\n", i,a); i++; } }}
2、求小于b的素数:
第一种就不求了,用第二种直接得出:
#include <stdio.h>#include <math.h>int main(){ int a, b, n; int i; printf("please input n:\n"); scanf("%d",&n); i=1; for (a =2; a <=n; a++) { for (b = 2; b <= sqrt(a) && a % b != 0; b++); if (b > sqrt(a)){ printf("%d:%d\n", i,a); i++; } }}
3、小于b的最大素数:
#include <stdio.h>#include <math.h>int main(){ int a, b, n;int i,j=1;printf("please input n:\n");scanf("%d",&n);i=1; for (a =2; a <=n; a++) { for (b = 2; b <= sqrt(a) && a % b != 0; b++); if (b > sqrt(a)){ j=a;i++;} }printf("answer:%d\n",j);}
时间测试之后博文会加上,有意者请关注后续。
- C语言求素数的不同解法
- C语言求素数。
- c语言求素数
- C语言求素数
- C语言:求素数
- 【C语言】求素数
- c语言求素数
- 求最大公约数的不同解法
- c语言--求100-200的素数
- 求素数的C语言代码优化
- C语言简单求素数
- 快速求素数 C语言
- C语言求回文素数
- 三个数求最大值的不同解法
- 常见算法:C语言求素数的问题
- 常见算法:C语言求素数的问题
- C语言求200`300之间的所有素数
- 用C语言求100到200之间的素数
- Android学习笔记(五):Activity和main.xml文件
- 每日一题
- 搜索专项:LA 3667
- 搭建一个后台服务器--服务端代码(异步,大并发)
- 基础知识之IO流(装饰设计模式)
- C语言求素数的不同解法
- CListBox类常见函数用法
- UCOS_STM32的任务切换
- STM32的中断处理1
- Source Insight : 程序员最得心应手的代码阅读和编辑工具(高效)
- OCP-1Z0-051-V9.02-122题
- teraSort相关
- VDC 的SDL OSD
- 黑马程序员_<<基础加强--1.5新特性(泛型)(下)>>