题解 | #KiKi求质数个数#

KiKi求质数个数

https://www.nowcoder.com/practice/d3a404ee0f8d41f98bf4707035d91086

不会求素数看这里(零基础小白版)

定义:素数 只能被1或本身整除的数 !!!!!!!一定要背会

那么什么叫整除呢?

就是说两个整数 a/b=x..0只要它的余数为0就表示整除

比如 4就不是素数,为什么? 4/2=2..0 4可以被2整除,不符合素数的定义

再举个例子: 6 是不是素数? 当然不是了,因为6/2=3..0

那我们再看 5 是不是不是素数?5是素数,因为 5 除了1和5之外别的数都不能整除

解题思路:从定义入手 要验证一个数是不是素数,我们可以这样做,假设用户随机输入一个整数n

我们可以用一个循环,让它从2到n-1结束,为什么这样做呢,因为素数是只能被1或它本身整除的数

,那么只要验证除了这两个数之外的所有数都不能被整除,就是素数,否则只要有一个被整除了就不算素数。

int num;
scanf("%d",&num);//用户随机输入一个整数
int i;
for(i=2;i<n;i++)//2-n-1之间的数都列举出来    i<n  等价与 i<=n-1   eg: i<6  和i>=5 
{
  if(num%i==0)//  %取余运算符   5%2 =  5/2=2..1  结果=1   余数为0表示整除  
  	f=0;// 不是素数了 f=0  不明白的看素数的定义  除了1和它本身别的都不能被整除  家人!!!!!!!
}
if (f==1)
  printf("%d是素数\n",num);
else
   printf("%d不是素数\n",num);


学会这个案例,你就已经会判断一个数是不是素数了,那么如果要判断一个区间内的素数呢?是不是又迷茫了,不着急,往下看解决你所有的迷茫!!!!!

#include <stdio.h>

int sushu(int num)
{
    int fhz = 1;
    int i;
    for(i = 2;i<=num-1;i++)
    {
        if(num%i==0)
            fhz= 0;//不是素数返回0
    }
    return fhz;//是素数返回1
}

int main()
{
    int i,j;
    int ssgs=0;
    for(i=100;i<1000;i++)//列举出所有三位数
    {
        if(sushu(i)==1)
        {
            ssgs++;
        }
    }
    printf("%d\n",ssgs);




    return 0;
}

#小白##c语言零基础##素数#
全部评论

相关推荐

我已成为0offer的糕手:别惯着,胆子都是练出来的,这里认怂了,那以后被裁应届被拖工资还敢抗争?
点赞 评论 收藏
分享
邮小鼠:粤嵌的项目水的要死 来我们学校带过课程实习 项目名字是车机终端 实际上就是写了了个gui 还是老师把代码发给你你改改的那种
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务