C路练习之循环结构素数问题(输出所有素数与指定范围内的素数个数)

素数的定义:就是大于1的自然数中,除了1和它本身以外不再有其他因数的数。

指定范围内的所有素数(多组数据)
描述
有两个整数a,b(2<=a<b),输出整数区间[a,b]内的所有素数。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

现在已知有多组数据,请依次处理。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入
有多组数据(用for循环),每组2个整数a,b。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输出
每组数据输出结果(素数间逗号分隔)后换行。

#include<stdio.h>
int main(){
    int a,b,flag,ret;
    do {
		ret = scanf("%d%d", &a, &b);
		if (ret == 2) {
		    flag=0;
			for (int i = a; i <= b; i++) {
				for (int j = 2; j < i; j++)
					if (i % j == 0)
						break;
				if (i == j) {
					if (flag)
						printf(",%d", i);
					else {
						printf("%d", i);
						flag = 1;
					}
				}
			}
			printf("\n");
		} 
		else
			break;
	} while (1);
    return 0;
}

在这里插入图片描述
指定范围内素数个数
描述
编程输入两个正整数a和b(2<=a<b<=999999),输出二者之间的素数的个数。

#include <stdio.h>
#include <math.h>

int main() {
   
    int count1 = 0;//计算素数个数
    int a, b;
    scanf("%d %d", &a, &b);

    for (int n = a; n <= b; n++) {
        
        int flag = 1;//标记是否为素数
        for (int j = 2; j <= sqrt(n); j++) {
            if (n % j == 0) {//说明有除n和1以外的其他数整除,说明n不是素数
                flag = 0;
                break;
            }
        }
        if (flag == 1) {//说明2到根号n中没有n的因子
           
            count1++;
        }
    }
    printf("%d", count1);
    return 0;
}

在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Script kid

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值