废话不多说,我们先来看第一段代码。
#include
bool prime(int n); //声明自定义函数
int main()
{
int number;
scanf_s("%d",&number); //注意此处我使用的是scanf_s(),一个VS提供的函数
if(prime(number) == true) {
printf("%d is a prime",number);
}
else {
printf("%d is not a prime", number);
}
return 0;
}
bool prime(int n)//判断一个数是否为质数的函数
{
int i;
for (i = 2; i < n; i++) { //验证质数
if (n % i == 0) {
break;
}
}
if (i == n) {
return true; //返还布尔值
}
}
这是一个判断输入数字是否为质数的简单程序。
我们使用了一个自定义的函数来判断质数。
因此这个程序里核心代码为这个部分:
bool prime(int n)//判断一个数是否为质数的函数
{
int i;
for (i = 2; i < n; i++) {
if (n % i == 0) {
break;
}
}
if (i == n) {
return true; //返还布尔值
}
}
原理很简单,就是暴力地验算第一个能被整除的数字是不是它本身。
如果检测到第一个被整除的数字,break;打破循环进行下一步验证,如果这个第一个数字是它本身,那么就返还一个true布尔值。
我们可以根据这个核心部分来扩展其他功能,比如说生成一个区间内的所有质数。
#include
bool prime(int n);
int main()
{
int number,time;
printf("请输入\n");
scanf_s("%d",&number);
for (time = 2;time <= number;time++) {
if (prime(time) == true) {
printf("%d\n",time);
}
}
printf("质数表打印完毕\n");
return 0;
}
bool prime(int n)
{
int i;
for (i = 2; i < n; i++) {
if (n % i == 0) {
break;
}
}
if (i == n) {
return true;
}
}
可以生成0~任意一个数字间的全部质数。
第一次写文章,表达不好望见谅。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)