C 语言素数原理/*,我来为大家科普一下关于c语言如何证明素数?下面希望有你要的答案,我们一起来看看吧!

c语言如何证明素数(C语言素数原理)

c语言如何证明素数

C 语言素数原理

/*

学习内容:输入一个32位的整数,打印出到该数范围内的所有素数。

只能被1和自身整除的数为素数

语言:C

*/

#include <iostream>//C语言中的stdio.h

#include <cmath>//C语言中的math.h

#include <climits>//C语言中的limits.h

#include <iomanip>//格式化控制输出

using namespace std;

//判断一个整数是否为素数

bool IsPrime(int iValue)

{

int i;

int iRoot;

iRoot = static_cast<int>(sqrt((double)iValue));//数据类型转换

for (i = 2; i <= iRoot; i)

{

if (iValue % i == 0)

return false;

}

return true;

}

int main()

{

unsigned int i;//循环变量

unsigned iMax;//保存有符号整型的最大值 int {{2147483647:0}}

unsigned iCount = 1;// 打印输出的时候用于控制换行显示

cout << "输入一个32位的整数,可以打印出到该数范围内的所有素数。" << endl;

cout << "请输入该数:";

while (!(cin >> iMax) || iMax < 2 || iMax > INT_MAX)//获取用户的输入,保存到iMax变量中

{

cout << "输入的值不合法,请重新输入:";

cin.clear();//清除cin的错误标志位

cin.sync();//清除输入缓存区

}

//cout << iMax << endl;

for (i = 2; i <= iMax; i)

{

if (IsPrime(i))

{

cout << setw(12) << i;//每一个素数占12个字符的宽度 setw == set width

if (iCount % 6 == 0)//每一行只显示6个素数

cout << endl;//换行

}

}

cout << endl;

return 0;

}

,