求素数,给你一个n,输出n以内的素数
2016-04-05 22:07
525 查看
#include<iostream> #include<cmath> using namespace std; void main() { int i,j,n; bool is_primer; cout<<"please enter n\n"; cin>>n; for(j=2;j<=n;j++) { int sq=sqrt(j); for(i=2;i<=sq;i++) if(j%i==0) break; if(i==sq+1) cout<<j<<'\t'; } }
一开始直接遍历除了本身和1以外的数,但是这样会有大量的浪费,考虑到一个数不能被其开方和小于开方的数整除即是素数。也就是说这样子就只要遍历到其开方就好了。下面给出参考答案,答案显然更合理
#include<stdio.h> int isprime(int); int main(void) { int num,i; printf("input a positive number:"); scanf("%d",&num); printf("all the primes <= %d:\n",num); for(i=2;i<=num;i++) if( isprime(i) ) printf("%d\t",i); printf("\n"); return(0); } int isprime(int n) //如果n是素数 返回1,反之 返回0 { int div; for(div = 2; div * div <= n; div++) if (n % div == 0) return 0; return 1; }
相关文章推荐
- 我是一个线程
- leetcode——88——Merge Sorted Array
- xmodmap使用指南
- 求多边形面积
- 算法分析之合并排序——merge sort子函数实现
- PyQt4开关按钮ToggleButton
- linux解决SQL中文乱码
- 1013 & 1014
- NSArray与NSMutableArray的基本使用
- IPC基础小记
- 详解Https是如何确保安全的?
- Navicat for Mysql 的使用
- Linux basic (2)
- 最小的K个数
- jQuery文件上传插件ajaxFileUpload ---谷营中西软件科技园
- 排序
- TCP之种种连接异常
- 《构建之法》第四章读后感
- 矮袋鼠呦
- Java入门:基础算法之二进制转换为十进制