以下是使用C语言解决上述问题的代码示例:

  1. 判断一个数是否为素数
#include <stdio.h>

int isPrime(int num) {
    if (num <= 1) {
        return 0;
    }
    for (int i = 2; i * i <= num; i++) {
        if (num % i == 0) {
            return 0;
        }
    }
    return 1;
}

int main() {
    int num;
    printf("请输入一个整数: ");
    scanf("%d", &num);
    if (isPrime(num)) {
        printf("%d是素数\n", num);
    } else {
        printf("%d不是素数\n", num);
    }
    return 0;
}
  1. 判断某年某月某日是这一年的第几天
#include <stdio.h>

int isLeapYear(int year) {
    return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}

int getDayOfYear(int year, int month, int day) {
    int daysInMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int dayOfYear = 0;
    
    for (int i = 1; i < month; i++) {
        dayOfYear += daysInMonth[i];
    }
    dayOfYear += day;
    
    if (isLeapYear(year) && month > 2) {
        dayOfYear += 1;
    }
    
    return dayOfYear;
}

int main() {
    int year, month, day;
    printf("请输入年份: ");
    scanf("%d", &year);
    printf("请输入月份: ");
    scanf("%d", &month);
    printf("请输入日期: ");
    scanf("%d", &day);
    
    int dayOfYear = getDayOfYear(year, month, day);
    printf("%d年%d月%d日是该年的第%d天\n", year, month, day, dayOfYear);
    
    return 0;
}
  1. 找出1000以内的所有'完数'
#include <stdio.h>

int isPerfectNumber(int num) {
    int sum = 0;
    for (int i = 1; i <= num / 2; i++) {
        if (num % i == 0) {
            sum += i;
        }
    }
    return sum == num;
}

int main() {
    printf("1000以内的完数有: ");
    for (int i = 1; i <= 1000; i++) {
        if (isPerfectNumber(i)) {
            printf("%d ", i);
        }
    }
    printf("\n");
    return 0;
}
  1. 求n个数的和并输出
#include <stdio.h>

int main() {
    int n, num, sum = 0;
    printf("请输入n的值: ");
    scanf("%d", &n);
    printf("请输入%d个数: ", n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &num);
        sum += num;
    }
    printf("这%d个数的和为: %d\n", n, sum);
    return 0;
}
  1. 求两个正整数的最大公约数和最小公倍数
#include <stdio.h>

int getGCD(int a, int b) {
    while (a != b) {
        if (a > b) {
            a -= b;
        } else {
            b -= a;
        }
    }
    return a;
}

int getLCM(int a, int b) {
    return (a * b) / getGCD(a, b);
}

int main() {
    int num1, num2;
    printf("请输入两个正整数: ");
    scanf("%d %d", &num1, &num2);
    
    int gcd = getGCD(num1, num2);
    int lcm = getLCM(num1, num2);
    
    printf("%d和%d的最大公约数为: %d\n", num1, num2, gcd);
    printf("%d和%d的最小公倍数为: %d\n", num1, num2, lcm);
    
    return 0;
}

请注意,以上代码示例仅供参考,可能还有其他更简洁或更高效的实现方式。

C语言算法示例:素数判断、日期计算、完数查找、求和、最大公约数与最小公倍数

原文地址: https://www.cveoy.top/t/topic/b9Rh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录