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;
}
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com