大家好,我是一名大一新生,这是第一次在csdn上写一种题解,这是最近社团的线上oj给出的题目,我最开始不是很会,想要在csdn上找对应的题解,可是我也没找到,只有判断一个数是不是质数的题解,那么我就来填补一下这里的空白吧,如果我的码写的有什么细节上的问题或者是我没有注意到的问题,欢迎各位大佬及时指出,我一定会及时的修改并改正我的一些习惯性错误,谢谢大家。
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,j,cnt=0;
scanf("%d",&n);
for(i=2;i<=n;i++)
{
for(j=2;j<=sqrt(i);j++)
{
if(i%j==0) break;
}
if(j>sqrt(i)) cnt++;
}
printf("%d",cnt);
return 0;
}
我的理解是这样的,就是说如果一个数比如说是5,他是质数,那么在j的for循环中j就要+1,那么肯定是大于他开方的,这样能够输出所有的在2-3的平方区间内的所有的质数。
如果大家还有其他的问题的话,欢迎在评论区评论,我会一一解答,如果我的代码存在一些或者细节问题,恳请大佬们在评论区中指出,我一定会改正。谢谢大家