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;
}
相关推荐
workflower3 小时前
单元测试-例子
java·开发语言·算法·django·个人开发·结对编程
MicroTech20255 小时前
微算法科技(MLGO)研发突破性低复杂度CFG算法,成功缓解边缘分裂学习中的掉队者问题
科技·学习·算法
墨染点香5 小时前
LeetCode 刷题【126. 单词接龙 II】
算法·leetcode·职场和发展
aloha_7896 小时前
力扣hot100做题整理91-100
数据结构·算法·leetcode
Tiny番茄6 小时前
31.下一个排列
数据结构·python·算法·leetcode
挂科是不可能出现的6 小时前
最长连续序列
数据结构·c++·算法
_Aaron___6 小时前
List.subList() 返回值为什么不能强转成 ArrayList
数据结构·windows·list
前端小L7 小时前
动态规划的“数学之魂”:从DP推演到质因数分解——巧解「只有两个键的键盘」
算法·动态规划
RTC老炮7 小时前
webrtc弱网-ReceiveSideCongestionController类源码分析及算法原理
网络·算法·webrtc
一念&7 小时前
每日一个C语言知识:C 结构体
c语言·开发语言