国二必过
2021-05-24 18:00
采纳率: 100%
浏览 106

c语言编程输入两个正整数a和b(2<=a<b<=99999,输出二者之间的素数的个数。

c语言编程输入两个正整数a和b(2<=a

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • 答题大神 2021-05-24 18:09
    已采纳
    #include <stdio.h>
    int main(){
    	int a,b;
    	printf("请输入两个整数(空格隔开):");
    	scanf("%d %d",&a,&b); 
    	int cnt=0; 
    	if(a>=2 && a<b && b<=9999){
    		//循环a-b之间的数,判断该数是否为素数 
    		for(int i=a;i<=b;i++){
    			if(sushu(i)){
    				cnt++;
    			}
    		} 
    	}else{
    		printf("输入的数据有误!");
    	}
    	printf("%d-%d之间有%d个素数",a,b,cnt);
    	return 0;
    }
    
    int sushu(int nun){
    	int flag=1;
    	for(int i=2;i<num/2;i++){
    		//该数可以被其他数整除,返回假 
    		if(num%i==0){
    			flag=0; 
    			break;
    		}
    	}
    	return flag;
    }
    

    代码如上,万望采纳

    点赞 打赏 评论
  • CSDN专家-link 2021-05-24 18:00

    这个好办啊,素数就是只能被1和自身整除

    点赞 打赏 评论
  • #include <stdio.h>
    int isprime( int n);
    int main()
    {
        int sum = 0;
        int a,b,i;
        printf("请输入a b: ");
        scanf("%d",&a);
        scanf("%d",&b);
        for( i=a; i<=b; i++ ) {
            if(isprime(i)){
                printf("%d ", i);
                sum++;
            }
        }
        printf("\n共有%d个素数", sum);
        return 0;
    }
    int isprime(int n)
    {
        int i;
        if(n<=3) return n>1;
        for(i=2;i*i<=n;i++)
            if(n%i==0) return 0;
        return 1;
    }
    

    如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢。
     

    点赞 打赏 评论
  • CSDN专家-link 2021-05-24 18:05
    int main()
    {
    	int a, b,i,j,num=0;
    	scanf_s("%d", &a);
    	scanf_s("%d", &b);
    	for (i = a; i <= b; i++)
    	{
    		for (j = 2; j < i; j++)
    		{
    			if (i%j == 0)
    				break;
    		}
    		if (j == i)
            {
    			printf("%d ", i);
                num++;
            }   
    	}
        printf("\n素数个数共:%d个",num);
    
    	return 0;
    
    }
    点赞 打赏 评论
  • guoziguozi1 2021-05-24 18:05

    同问

    点赞 打赏 评论
  • guoziguozi1 2021-05-24 18:15
    #include <stdio.h>
    main()
    {
    	int a,b,j,n,c=0,i;
    	scanf("%d %d",&a,&b);
    		for(n=a;n<=b;n++)
    		{    j=0;
    			for(i=2;i<n;i++)
    			{
    				if(n%i==0)
    				{
    					j=1;break;
    				}
    			}
    			if(j==0)
    				c+=1;
    		}
    		printf("%d",c);
    }
    
    点赞 打赏 评论
  • 有问必答小助手 2021-05-26 17:40

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    点赞 打赏 评论

相关推荐 更多相似问题