赞
踩
设计一个程序,输出所有小于等于n(n为一个大于2的正整数)的素数。
要求:
1、每行输出10个素数
2、尽可能采用较优的算法
- #include <iostream>
- using namespace std;
- int prime(int n){
- int i;
- bool *prime = new bool[n+1];
- for(i=2;i<n;i++){
- prime[i] = true;//先假设它们都是素数
- }
- for(i=2;i<=n;i++){
- if(prime[i]){
- for(int j=i+i;j<=n;j+=i){
- prime[j] = false; //不是素数的将他们的值赋值为false,以便区分
- }
- }
- }
- cout<<"0-n的素数有:";
- int t=0;//计数
- for(i=2;i<=n;i++){
- if(t%10==0) //每行输出10个
- cout<<endl;
- if(prime[i]){
- t++;
- cout<<i<<" ";
- }
- }
- cout<<endl;
- return 0;
- }
- int main() {
- int n;
- cout<<"n:";
- cin>>n;
- prime(n);
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。