C语言常见题目 过关斩将(2)基础好❓你可知道有关 “素数“ 的三连问❓

news2024/11/18 4:48:44

我的个人主页☆光之梦☆的博客_CSDN博客-C语言基础语法(超详细)领域博主

欢迎各位 👍点赞 ⭐收藏 📝评论

特别标注:本博主将会长期更新c语言的语法知识,初学c语言的朋友们,可以收藏订阅一下我的<C语言基础语法>专栏。 关注博主,学习不迷路哦

目录

一、输入一个数,怎么判断是否为素数

二、如何输出100以内的素数

三、如何输出前50个素数  

四、 凑硬币

 方案1——得到多种结果

方案2(接力break)——只得到一种结果就结束  

方案3——goto语句  


一、💠输入一个数 判断是否为素数💠

素数:只能被1和自己整除的数,不包括1 2,3,5,7,11,13,17,19.

素数(1)输入一个数,判断是否为素数

代码示例:

#include <stdio.h>

int main()
{
	int x;
	int i; 
	printf("请输入一个数:");
	scanf("%d",&x);
	
	int isPrime = 1;	//x是素数
	for (i =2; i < x; i++){
		if (x % i == 0){
			isPrime = 0;//x不是素数 
			break;
		}
		break;
	}
	if (isPrime == 1) {
		printf("%d是素数\n",x);
	} else {
		printf("%d不是素数\n",x); 
	}
	
	return 0;
}

二、💠如何输出100以内的素数💠

素数(2)如何输出100以内的素数

代码示例:

#include <stdio.h>
// 输出100以内的素数 
int main()
{
	int x;
	// 因为1不是素数,所以从2开始 
	for (x = 2; x<100; x++){
		int i;
		int isPrime = 1;	//x是素数
		for (i =2; i < x; i++){
			if (x % i == 0){
				isPrime = 0;//x不是素数 
				break;
			}
		}
		if (isPrime == 1){
			printf("%d ",x);
		}
	}
	printf("\n");
	
	return 0;
}

运行结果:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

三、💠如何输出前50个素数💠

素数(3)如何输出前50个素数

 代码示例:

#include <stdio.h>
// 输出前50个素数 
int main()
{
	int x = 2;
	int cnt = 0;
	// 因为1不是素数,所以从2开始 
	while (cnt < 50){
		int i;
		int isPrime = 1;	//x是素数
		for (i =2; i < x; i++){
			if (x % i == 0){
				isPrime = 0;//x不是素数 
				break;
			}
		}
		if (isPrime == 1){
			printf("%d ",x);
			cnt++;
		}
		x++; 
	}
	printf("\n");
	
	return 0;
}

运行结果:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229

四、🔷 凑硬币🔷

如何用 1 角、2 角和 5 角的硬币凑出 10 元以下的金额呢?

 方案1——得到多种结果

代码示例:

#include <stdio.h>

int main()
{
	int x;
	int one,two,five;
	
	// scanf("%d",&x);
	x = 2;
	for (one = 1; one <= x*10; one++) {
		for (two = 1; two <= x*10/2; two++) {
			for (five = 1; five <= x*10/5; five++) {
				if (one + two*2 + five*5 == x*10) {
					printf("可以用%d个1角+%d个2角+%d个5角得到%d元\n",one,two,five,x);
				}
			}
		}
	}
	return 0;
}

运行结果:

可以用1个1角+2个2角+3个5角得到2元
可以用1个1角+7个2角+1个5角得到2元
可以用2个1角+4个2角+2个5角得到2元
可以用3个1角+1个2角+3个5角得到2元
可以用3个1角+6个2角+1个5角得到2元
可以用4个1角+3个2角+2个5角得到2元
可以用5个1角+5个2角+1个5角得到2元
可以用6个1角+2个2角+2个5角得到2元
可以用7个1角+4个2角+1个5角得到2元
可以用8个1角+1个2角+2个5角得到2元
可以用9个1角+3个2角+1个5角得到2元
可以用11个1角+2个2角+1个5角得到2元
可以用13个1角+1个2角+1个5角得到2元

方案2(接力break)——只得到一种结果就结束  

代码示例:

#include <stdio.h>

int main()
{
	int x;
	int one,two,five;
	int exit = 0;
	
	// scanf("%d",&x);
	x = 2;
	for (one = 1; one <= x*10; one++) {
		for (two = 1; two <= x*10/2; two++) {
			for (five = 1; five <= x*10/5; five++) {
				if (one + two*2 + five*5 == x*10) {
					printf("可以用%d个1角+%d个2角+%d个5角得到%d元\n",one,two,five,x);
					exit = 1;
					break;
				}
			}
			if (exit == 1){
				break;
			}
		}
		if (exit == 1){
			break;
		}
	}
	return 0;
}

运行结果 :

可以用1个1角+2个2角+3个5角得到2元

方案3——goto语句  

代码示例:

#include <stdio.h>

int main()
{
	int x;
	int one,two,five;
	
	// scanf("%d",&x);
	x = 2;
	for (one = 1; one <= x*10; one++) {
		for (two = 1; two <= x*10/2; two++) {
			for (five = 1; five <= x*10/5; five++) {
				if (one + two*2 + five*5 == x*10) {
					printf("可以用%d个1角+%d个2角+%d个5角得到%d元\n",one,two,five,x);
                goto out;
				}
			}
		}
	}
out:
	return 0;
}

注:只在多重内循环需要跳转到最外侧的场景下使用goto语句,其他场景都不要去使用goto语句。因为goto语句破坏了程序结构性,难查错

今日小 tip:

if 语句只会在乎0与非0,为0则不执行,不为0则执行

以下代码段的输出是:

int sum = 0;
for ( int i=0; i<10; i++ ) {
    if ( i%2 ) continue;
    sum += i;
}
printf("%d\n", sum); //2+4+6+8   20

各位学习C语言的初学者,如果有问题随时都可以来问我,我会随时为您解答!欢迎大家与我一起学习,互相进步。

我的C语言专栏:C语言基础语法(超详细)_☆光之梦☆的博客-CSDN博客

创作不易,👍 +⭐ +📝(一键三连) 是对博主最大的鼓励与支持哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1082300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从0开始学go第七天

gin获取表单from中的数据 模拟简单登录页面&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>login</title> </head><body><form action"/login" method&q…

SLAM从入门到精通(launch文件学习)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 大家应该还记得我们在一开始学习ros的时候&#xff0c;如果需要启动一个节点的话&#xff0c;需要首先打开roscore&#xff0c;接着用rosrun打开对…

Java进击框架:Spring-Bean初始化过程(五)

Java进击框架&#xff1a;Spring-Bean初始化过程&#xff08;五&#xff09; 前言源码初始化配置加载Bean加载Bean对象加载Bean切面 Bean工厂后置处理器注册Bean后置处理器初始化消息源初始化应用程序事件多播器注册监听器完成Bean工厂初始化Bean初始化完成刷新应用上下文创建完…

VSCODE+PHP8.2配置踩坑记录

VSCODEPHP8.2配置踩坑记录 – WhiteNights Site 我配置过的最恶心的环境之一&#xff1a;windows上的php。另一个是我centos服务器上的php。 进不了断点 端口配置和xdebug的安装 这个应该是最常见的问题了。从网上下载完php并解压到本地&#xff0c;打开vscode&#xff0c;安装…

前端 | 前端工程化

文章目录 前端工程化1. Vue项目创建2. Vue项目目录结构3. vue项目开发 前端工程化 1. Vue项目创建 安装插件vue-cli npm install -g vue/cli命令行创建 Vue 项目 vue create vue-project(项目名称)图形化界面创建 VUe 项目 vue ui图形化界面如下&#xff1a; 选择功能&…

如何在edge浏览器中给PDF添加文字批注

我用的edge浏览器是目前最新版的&#xff08;一般自动更新到最新版&#xff09; 最近&#xff0c;我喜欢用edge浏览器查看PDF&#xff0c;节省电脑资源&#xff0c;快捷且方便。 但edge对PDF的标注种类较少&#xff0c;主要是划线和涂色&#xff0c;文字批注功能尚未出现在工具…

【TB作品】基于MSP430G2553单片机的超声波测距与报警系统,原理图,PCB

功能&#xff1a; 1 超声波测距显示 2 按键设置报警上下限 3 蜂鸣器报警 原理图&#xff1a; PCB样式&#xff1a; 实物&#xff1a; 代码&#xff1a; https://github.com/xddun/blog_code_search

PDMS二次开发(二十一)——关于Pipeline工具生成螺栓材料表的计算思路

目录 1.简述2.螺栓元件的数据2.1 A1A等级中螺栓元件库2.2 A1A等级中法兰元件库2.3 A1A要指定螺栓等级2.4 螺栓等级数据解析 3.问题解释 1.简述 因为有好几个网友问到螺栓材料表生成报错的问题&#xff0c;我初步分析可能还是因为螺栓元件库的问题&#xff0c;我这里对Pipeline…

Android约束布局ConstraintLayout流式Flow

Android约束布局ConstraintLayout流式Flow <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.…

Hadoop分布式集群搭建教程

目录 前言环境准备一、创建虚拟机二、虚拟机网络配置三、克隆虚拟机四、Linux系统配置五、Hadoop的部署配置六、Hadoop集群的启动 前言 大数据课程需要搭建Hadoop分布式集群&#xff0c;在这里记录一下搭建过程 环境准备 搭建Haoop分布式集群所需环境&#xff1a; VMware&a…

Redis之缓存一致性

Redis之缓存一致性 1 缓存更新策略1.1 内存淘汰1.2 过期删除1.3 主动更新1.4 三种缓存更新策略的对比 2 更新缓存的两种方式3 缓存更新策略的实现方式3.1 先更新DB&#xff0c;后更新缓存3.2 先更新DB&#xff0c;后删除缓存3.3 先更新缓存&#xff0c;后更新DB3.4 先删除缓存&…

unity2022版本 实现手机虚拟操作杆

简介 在许多移动游戏中&#xff0c;虚拟操纵杆是一个重要的用户界面元素&#xff0c;用于控制角色或物体的移动。本文将介绍如何在Unity中实现虚拟操纵杆&#xff0c;提供了一段用于移动控制的代码。我们将讨论不同类型的虚拟操纵杆&#xff0c;如固定和跟随&#xff0c;以及如…

lv8 嵌入式开发-网络编程开发 16 多路复用poll函数

目录 1 多路复用的多种实现方式 2 poll 2.1 poll 函数应用 3 epoll 函数族&#xff08;效率最高&#xff09; 3.1 epoll_create 创建epoll句柄 3.2 epoll_ctl epoll句柄控制接口 3.3 epoll_wait 等待 epoll 文件描述符上的 I/O 事件 3.4 epoll 函数应用 1 多路复用的多…

数据结构学习笔记——数据结构概论

目录 一、数据与数据元素二、数据类型和抽象数据类型三、数据结构的定义&#xff08;一&#xff09;逻辑结构&#xff08;二&#xff09;存储结构&#xff08;物理结构&#xff09;1、顺序存储结构2、链式存储结构3、索引存储结构4、散列存储结构 &#xff08;三&#xff09;数…

Python 自定义包和模块随机生成6位验证码(详解版)

一、新建一个包&#xff08;两种方法&#xff09; 方法一&#xff1a;先新建一个空目录命名为"小功能包"&#xff0c;然后在新建的目录下新建一个空__init__.py&#xff08;目的是声明当前目录是一个包&#xff09; 方法二&#xff1a;直接在PyCharm用鼠标依次点击F…

【Unity】【VR】如何让Distance Grab抓取物品时限制物品的Rotation

【背景】 遇到这样的场景,希望抓取Canvas时,Canvas不会沿Z轴旋转。 【问题】 发现Freeze Canvas的Rigid Body没有用。 【分析】 应该是RigidBody的限制仅在物理互动下生效,抓取可能不属于物理互动(比如碰撞),所以不生效。 【思路】 还是得写脚本挂载在Interacta…

LeetCode 69.x的平方

LeetCode 69.x的平方 思路&#xff1a; 二分查找。从1到x进行二分查找&#xff0c;每次判断mid的平方是否<x&#xff0c; 如果是&#xff0c;则更新ansmid&#xff0c;并缩小区间&#xff1b; 如果不是&#xff0c;则缩小区间&#xff1b; 最后则找到最接近的ans&#xff0…

数字IC/FPGA面试题目合集解析(一)

数字IC/FPGA面试题目合集解析&#xff08;一&#xff09; 题目概述题目1&#xff0c;计算题2&#xff0c;计算题3&#xff0c;选择题 答案与解析1&#xff0c;计算题2&#xff0c;计算题3&#xff0c;选择题 题目概述 1&#xff0c;计算题&#xff1a;计算该触发器等效的建立保…

AI项目十五:PP-Humanseg训练及onnxruntime部署

若该文为原创文章&#xff0c;转载请注明原文出处。 关于PP-Humanseg是在正点原子的3568开发板AI测试例子里看到的&#xff0c;目的也是想自己训练并部署&#xff0c;这里记录一下训练和在onnxruntime部署运行的全过程&#xff0c;会转成ONNX&#xff0c;至于部署到rk3568上&a…

Leetcode刷题详解——移动零

题目链接&#xff1a;移动零 题目描述&#xff1a; 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出…