目录
1.判断是否为素数
* 解释何为素数
/* 素数,除本身的绝对值外,不可能为大于1的整数除尽的数引用
解释大于1的整数,除了它本身和1以外,
不能被其他正整数所整除的
*/
2.求某个数以内的最大素数
* 在一定范围内 最大的素数
* 思路
* 在某个范围肯定就是要使用循环,已经有了第一单个数字判断例子
就是说遇到判断不要慌 不要觉得难,不管是什么例子遇到了什么问题
一定就是从一个数去试数 然后再套循环
3.代码实行过程
/**
* program: 判断是否为素数
* 解释何为素数
* 代码执行过程
*
* 在一定范围内 最大的素数
* 思路
* 代码执行过程
*
* author:Rocco
*/
#include <stdio.h>
int main(void)
{
/*
程序思路
说明程序 并 调用scanf()
*/
//程序说明 判断是否为素数--程序交互式
printf("Determine whether it is a prime number",
"--program interactive\n");
printf("\ninput:");
//解释何为素数
/* 素数,除本身的绝对值外,不可能为大于1的整数除尽的数引用
解释大于1的整数,除了它本身和1以外,
不能被其他正整数所整除的
*/
//scanf() 给程序输入一个值 到变量
int num; // 待判断数值
int i; //为了递增循环
scanf("%d", &num); // & 取地址符 把输入的值 放到num内存地址里
//开始循环 "能被大于1的数整除" 所以从2开始
for (i = 2; i < num; i++)
{
//判断 "除本身的绝对值外,不可能为大于1的整数" 是否可以被整除
if (num % i == 0) //复习:% 取余数 为0 执行
{
printf("It's not, no prime number\n");
break;
}
}
if (i % num == 0)
{
printf("%d\n", num);
printf("It's right, the prime number\n");
}
//已经结束 由于for循环 i 已经做过+1操作
//就是说 i已经等于num
//再去核实 判断 i/num 到底有没有余数
for (int j = 0; j < 30; j++)
{
printf("*");
}
printf("\n");
//loop check for prime numbers
//循环检验素数
printf("loop check for prime numbers\n");
//输入一个的范围
printf("input:");
//定义一个范围的值
int num_2;
int max = 0; //存放范围中最大的素数
int i_2;
scanf("%d", &num_2); //通过键盘输入num_2判断素数范围的值
//先从一个数 试数
//但是 我们做的 单数判断素数 已经符合要求
// 就可以直接复制 套进循环里了
// 这里for循环的范围就是num_2
// 范围起始是 i_2 60
for (i = 2; i <= num_2; i++)
{
// 2
for (i_2 = 2; i_2 < i; i_2++)
{
//判断 "除本身的绝对值外,不可能为大于1的整数" 是否可以被整除
//范围起始 取余数 判断结果
if (i % i_2 == 0) //复习:% 取余数 为0 执行
{
//这里可以选择不打印 不是素数的句子 直接break停止
//printf("It's not, no prime number\n");
break;
}
}
if (i_2 % i == 0)
{
//考虑 要不要把范围内所有的素数打印出来
//printf("%d ", i_2);
//由于for循环是从最小数开始判断的 到最后一个
//肯定就是素数
//走程序 就定义一个变量 意味最大值
max = i_2;
}
}
//最外围的for循环结束 打印max最大值
printf("prime max is = %d\n", max);
getchar();
getchar();
return 0;
}
4.结尾
重点!重点!重点!重点!重点!
重点看代码块中的注释 //复制后可以直接运行
先想办法试数 再去套循环
下一讲 函数设计 例子-(在一定范围内 数九) 比如19090, 有2个九。
有问题可以直接私信 ,You should elevate yourself. Of course, and me.