求质数(C++语言)

/*刚一个同学来问我求质数的问题,我想这个问题很简单,就说百度一大堆,搜了一下,看见很多都是错误的或者即使正确效率依然很低,但要自己立马写出来也不是1+1的事情,于是就试着写了下,自我感觉不错,因为我觉得我写的这个运算效率还是比较高的。*/
#include <iostream>
#include <math.h>
#include <iomanip>
using namespace std;
void main()
{
	int max,len=2;
	cout<<"***********求质数,请输入最大范围************"<<endl<<"0~多少呢?请输入:";
	cin>>max;
	cout<<setiosflags(ios::right)<<setw(4)<<2<<" "<<setiosflags(ios::right)<<setw(4)<<3<<" ";
	for (int a=2;a<max;a++)
	{
		int sta=0;					         //为内循环做个参考变量,在内循环外,外循环内定义合适。
		int sub=sqrt(a);				//只需要对a的算术平方以内数循环即可,用a也是重复
		for (int b=2;b<=sub;b++)
		{
			if (a%b==0) {sta++;}
			if (b==sub && sta==0)
			{
				cout<<setiosflags(ios::right)<<setw(4)<<a<<" ";
				len++;
				if (len%10==0) cout<<endl;
			}
		}
	}
	cout<<endl;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值