输入一个大于1的整数n,打印n内的所有素数。这道题在笔试中经常出现,首先得理解素数是除1和自身外没有其他因子的自然数,下面给出代码:

#include <iostream>
#include <vector>
#include <math.h>

using namespace std;

int main(int argc, char **argv)
{
	int n;
	while(true)
	{
		cout << "n:" << endl;
		cin >> n;
		if(n > 1) break;
	}

	vector<int> primes;
	for(int i = 2; i < n; ++i)
	{
		if(i == 3 || i == 2) 
		{
			primes.push_back(i);
			continue;
		}

		if(i%2 == 0) continue;	

		int sq = sqrt((double)i);
		int j;
		for(j = 2; j <= sq; ++j)
		{
			if(i%j == 0) break;	
		}
		if(j > sq)
		{
			primes.push_back(i);	
		}
	}

	vector<int>::iterator it = primes.begin();
	cout << "大于2小于n的素数" << "(" << primes.size() << "): " << endl;
	while(it != primes.end())
	{
		cout << *it << " ";	
		++ it;
	}
	cout << endl;

	system("pause");

	return 0;

}

这里为什么使用从2到小于等于根号N的所有整数去试除呢,比如:n=a * b,而a和b这两个因子至少有一个小于等于根号n
运行结果:

lua面向对象模拟简介

lua不是面向对象语言,但可以通过表(table)和元表(metatable)来模拟。table 是 lua 中唯一的一种数据结构,它可以用来描述原始的数组、符号表、集合、 记录、...

阅读全文

在c/c++中调用lua函数

上篇文章完成了在lua中调用c/c++函数,现在来实现在c/c++中调用lua函数。 首先完成lua代码,创建sum.lua: function add(x, y) return x + y; end 为了...

阅读全文

在lua中调用c/c++函数

lua是一种轻量级的脚本语言,用来扩展c和c++非常好,在游戏开发中使用很普遍。 首先下载lua,因为我是在win7下,所以我这里下载了luaforwindows,安装到F:\Lu...

阅读全文

欢迎留言