主题 : 判断10000以内的数是否为质数的方法
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 605046
威望: 529588 点
无痕币: 36 WHB
贡献值: 0 点
在线时间: 62540(时)
注册时间: 2008-12-25
最后登录: 2024-05-16

0 判断10000以内的数是否为质数的方法

#include <iostream>
#include <cmath>
#include <Windows.h>
#include <algorithm>
using namespace std;
//普通做法
void print(int n)
{
int count = 0;
for (int i = 2; i <= n; i++)
{
for (int j = 2; j < i; j++)
{
count++;
if (i % j == 0)
goto label;
}
cout << i <<" " ;
label:continue;
}
cout << endl;
cout << "循环次数:" << count << endl;
}
/*
//埃拉托斯特尼筛法求素数
void print(int n)
{
int len = sqrt(n),sum=0,count=0;
int *a = (int*)malloc(n * sizeof(int));//开辟数组
//找出根号n内的素数,然后输出
for(int i = 2; i <= len; i++)
{
for (int j = 2; j < i; j++)
{
count++;
if (i % j == 0)
goto label;
}
a[sum++] = i;
//cout << i <<" ";
label:continue;
}
for (int i = len + 1; i < n; i++)
{
for (int j = 0; j < sum; j++)
{
count++;
if (i % a[j] == 0)
goto fun;
}
//cout << i <<" ";
fun:continue;
}
cout << endl;
cout << "循环次数:" << count << endl;
}
*/
int main()
{
int n;
cin >> n;
SYSTEMTIME t;
GetLocalTime(&t);
cout << t.wSecond << "秒" << t.wMilliseconds << "毫秒" << endl;
print(n);
GetLocalTime(&t);
cout << t.wSecond << "秒" << t.wMilliseconds << "毫秒" << endl;
return 0;
}
级别: 六行秋雁

UID: 1363
精华: 0
发帖: 7165
威望: 21559 点
无痕币: 10285 WHB
贡献值: 0 点
在线时间: 789(时)
注册时间: 2007-11-27
最后登录: 2024-04-21

学习了解了,感谢分享
Total 0.068910(s) query 5, Time now is:05-16 03:54, Gzip enabled 粤ICP备07514325号-1
Powered by PHPWind v7.3.2 Certificate Code © 2003-13 秋无痕论坛