0
点赞
收藏
分享

微信扫一扫

C语言数字类编程题

汤姆torn 2022-02-05 阅读 56
c语言

目录

三位数组成

水仙花数

斐波那契数列

 素数

 同构数

最大公约数,最小公倍数

  完数


三位数组成

#include<stdio.h>
int main()
{
	int i, j, k;
	for (i = 1; i <= 4; i++)
		for (j = 1; j <= 4; j++)
			for (k = 1; k <= 4; k++)
				if (i != j && i != k && j != k)
					printf("%d%d%d ", i, j, k);//直接并列输出三个数字,注意后面加空格让每个三位数有间隔
	return 0;
}

水仙花数

#include<stdio.h>
int main()
{
	int i,a,b,c;
	for (i = 100; i <1000; i++)//水仙花数是特殊三位数,所以直接从100开始判断
	{
		a = i % 10;// 提取个位数
		b = i / 10 % 10;//提取十位数
		c = i / 100;//提取百位数
		if (a * a * a + b * b * b + c * c * c == i)//每一位数立方后相加之和等于本身即为水仙花数
			printf("%d是水仙花数\n", i);
	}
	return 0;
}

斐波那契数列

#include<stdio.h>
int main()
{
    int i = 1, j = 1, t;
    printf("%d %d ", i, j);
    for (int n = 0; n < 20; n++)
    {
        t = j;
        j = i + j;
        i = t;
        printf("%d ", j);
    }
    return 0;
}

 素数

#include<stdio.h>
int main()
{
    int x,i;
    scanf_s("%d",&x);
    for (i = 2; i < x; i++)//出去1和该数本身
        if (x % i == 0)
            break;
    if (i == x)//如果是素数的话,上面循环语句中会遍历完每一个数字,并在i=x的时候跳出循环
        printf("是素数");
    else
        printf("不是素数");
    return 0;
}

 

 同构数

#include<stdio.h>
int main()
{
    int i,j;
    for (i = 1; i < 10000; i++)
    {
        j = i * i;
        if (j % 10 == i||j%100==i||j%1000==i||j%10000==i)
            printf("%d %d\n",i,j);
    }
    return 0;
}

最大公约数,最小公倍数

#include<stdio.h>
int main()
{
    int m, n,t,i,gys;
    scanf_s("%d%d", &m, &n);
    if (m < n)//判断两数大小,使m为大的数
    {
        t = m;
        m = n;
        n = t;
    }
    for (i = n; i > 1; i--)//从n开始遍历,分别被m和n取余判断
        if (m % i == 0 && n % i == 0)
        {
            gys = i;
            break;//找到最大的后就跳出循环
        }
    printf("最大公约数为%d", gys);
    printf("最小公倍数为%d", m * n / gys);
    return 0;
}

  完数

举报

相关推荐

0 条评论