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;
}
,