素数生成プログラム

素数生成するだけのプログラムです。
なんか面白いのでメモメモ。

exeも置いときます。 → prime_gen.exe
コマンドラインで叩くと使えます。↓

prime_gen.exe 1000

ファイルに出力したければ

prime_gen.exe 1000 > output.txt

/************************************************************
	prime gen.exe
************************************************************/

#include <iostream>
#include <vector>

int main(int argc, char* argv[])
{
	std::vector<unsigned long long int> prime_ls;

	unsigned long long int target;
	unsigned long long int distp = 3;
	prime_ls.push_back(2);

	if(argc < 2)
	{
		std::cout << "please input target" << std::endl;
		return 0;
	}
	target = atoi(argv[1]);

	unsigned long long int cnt = target - distp;
	for (; cnt > 0; cnt--)
	{
		for (unsigned long long int cmpp = 0; prime_ls.size() > cmpp; cmpp++)
		{
			if (distp % prime_ls[cmpp])
			{
				if (prime_ls.size() - 1 == cmpp)
				{
					prime_ls.push_back(distp);
					break;
				}
			} else
			{
				break;
			}
		}
		distp++;
	}

	for (unsigned int cnt = 0; prime_ls.size() > cnt; cnt++)
	{
		std::cout << "{" << cnt + 1 << " " << prime_ls[cnt] << "}, ";
	}

	return 0;
}

投稿者:

コメントを残す

メールアドレスが公開されることはありません。