素数(又称质数)的概念: 只有1和它本身两个因数的自然数
当我们用c语言去实现素数算法的代码时,重点是去考虑其变量以及循环条件,掌握这两点就可以做素数的例题啦~
例 1
从键盘输入一个数,判断其是否为素数
🔺分析:想到概念,任何素数只能被1和它本身所除,那么从1到它本身不能出现其他因数,否则跳出循环
🔺代码实现如下
#include <stdio.h>
int main()
{
int m, flag =1 ; //定义flag变量标志判断是否为素数
printf ( "Please input a num:\n" );
scanf ( "%d", &m );
for ( int i = 2; i < m; i++) //循环从2开始,是因为i=1时对任何数都无意义
{
if ( m % i == 0 )
{
flag = 0;
break;
}
else
{
flag = 1;
}
}
if ( flag )
{
printf ( "%d是素数", m );
}
else
{
printf( "%d不是素数", m );
}
return 0;
}
例 2
求1-100以内自然数的所有素数
🔺分析:数是从1-100,那就在上面代码的基础上做一点点修改,相当从1-100去索引哪些数是素数,也是一个循环判断素数的经典例题
🔺代码结果如下
#include<stdio.h>
int main()
{
int i;
int j;
int flag = 1; //用于标志素数的判断
for(i = 2; i <= 100; i++)
{
for(j = 2; j <= i / 2; j++) //i/2剔除一部分不必要的计算
{
if(i % j ==0)
{
flag = 0;
break;
}
}
if(flag == 1)
{
printf("%4d",i);
}
flag = 1;
}
return 0;
}
因为本身自己也是刚学完这些,有利于刚接触c语言的萌新看哦,还希望大家多多指出我的不足,谢谢啦,第一次发文字,后续还会出一些c语言的经典例题,希望大家多多关注哦~