C语言经典例题 --- 公因数、素数、闰年

文章目录

如何用代码实现求两个值之间的最大公因数呢?

代码如下:

c 复制代码
#include <stdio.h>
int main()
{
    int m = 0;
    int n = 0;
    int min = 0;
    scanf("%d%d", &m, &n);
    if (m < n)
        min = m;
    else
        min = n;
    while (1)
    {
        if (m % min == 0 && n % min == 0)
            break;
        else
            min--;
    }
    printf("最大公因数为%d", min);
    return 0;
}

//辗转相除法
#include <stdio.h>

int main()
{
	int m = 0;
	int n = 0;
	int min = 0;
	int temp = 0;
	scanf("%d%d", &m, &n);
	while (1)
	{
		if (m < n)
		{
			temp = m;
			m = n;
			n = temp;
		}
		if (m % n == 0)
		{
			printf("最大公因数为:%d", n);
			break;
		}
		else
		{
			min = m % n;
			m = n;
			n = min;
		}
	}
	return 0;
}
如何计算闰年?

代码如下:

c 复制代码
//假如我们要打印1000年-2000年之间的闰年
//闰年:1.能被4整除,不能被100整除 2.能被400整除
#include <stdio.h>
int main()
{
    int year = 0;
    for (year = 1000; year <= 2000; year++)
    {
        if (year % 4 == 0 && year % 100 != 0)
        {
            printf("%d ", year);
        }
        else if (year % 400 == 0)
        {
            printf("%d ", year);
        }
        else
            continue;
    }
    return 0;
}
如何用代码实现判断一个数是否为素数

代码如下:

c 复制代码
//假如我们这边要判断100-200之间的素数,然后打印出来
#include <stdio.h>
int main()
{
    int i = 0;
    int j = 0;
    for (i = 100; i <= 200; i++)
    {
        for (j = 2; j < i; j++)
        {
            if (i % j == 0)
                break;
        }
        if (i == j)
        {
            printf("%d ", i);
        }
    }
    return 0;
}

//优化版
#include <stdio.h>
#include <math.h> sqrt开平方函数,使用时需引用math.h头文件
int main()
{
    int i = 0;
    int j = 0;
    for (i = 101; i <= 200; i+=2)
    {
             int sign = 1; //假设i为素数
             for (j = 2; j <= sqrt(i); j++) 
        {
            if (i % j == 0)
                sign = 0;
                break;
        }
        if (sign == 1)
            printf("%d ", i);
    }
    return 0;
}
相关推荐
晨非辰2 小时前
数据结构排序系列指南:从O(n²)到O(n),计数排序如何实现线性时间复杂度
运维·数据结构·c++·人工智能·后端·深度学习·排序算法
小曹要微笑2 小时前
STM32H7系列全面解析:嵌入式性能的巅峰之作
c语言·stm32·单片机·嵌入式硬件·算法
寻星探路2 小时前
JavaSE重点总结后篇
java·开发语言·算法
松涛和鸣4 小时前
14、C 语言进阶:函数指针、typedef、二级指针、const 指针
c语言·开发语言·算法·排序算法·学习方法
yagamiraito_6 小时前
757. 设置交集大小至少为2 (leetcode每日一题)
算法·leetcode·go
星释6 小时前
Rust 练习册 57:阿特巴什密码与字符映射技术
服务器·算法·rust
星期天26 小时前
3.0 C语⾔内存函数:memcpy memmove memset memcmp 数据在内存中的存储:整数在内存中的存储 ⼤⼩端字节序和字节序判断
c语言·数据结构·进阶·内存函数·数据内存存储
无敌最俊朗@6 小时前
力扣hot100-141.环形链表
算法·leetcode·链表
WWZZ20259 小时前
快速上手大模型:深度学习10(卷积神经网络2、模型训练实践、批量归一化)
人工智能·深度学习·神经网络·算法·机器人·大模型·具身智能
sali-tec10 小时前
C# 基于halcon的视觉工作流-章62 点云采样
开发语言·图像处理·人工智能·算法·计算机视觉