C语言实现:打印素数、最大公约数
本片博客起源于作者在经历了学校的测试之后猛然发现自己居然忘记了一些比较基础的代码,因此写了本片博客加强记忆
以下算法仅供参考
打印素数
打印:0到200之间所有的素数
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>
#include<math.h>
int main()
{int count = 1;printf("0到200之间的素数:\n");for (int i = 2; i <= 200; i++){int is_prime = 1;// 判断是否为素数for (int j = 2; j <= sqrt(i); j++){if (i % j == 0){is_prime = 0;break;}else{count++;}}// 输出素数if (is_prime == 1){printf("%d ", i);}if (count % 10 == 0){printf("\n");}}return 0;
}
最大公约数和最小公倍数
最小公倍数需要在最大公约数实现后才能实现
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
// 计算最大公约数(GCD)
int gcd(int a, int b) {a = abs(a); // 处理负数b = abs(b);// 欧几里得算法(辗转相除法)while (b != 0) {int temp = b;b = a % b;a = temp;}return a;
}// 计算最小公倍数(LCM)
int lcm(int a, int b) {if (a == 0 || b == 0) { // 处理0值输入return 0; // 0和任何数的最小公倍数为0}return abs(a * b) / gcd(a, b);
}
int main()
{int a = 3;int b=12;int r= gcd(a,b);printf("%d\n",r);return 0;
}
本片博客仅作为学习记忆,仅供参考