c函数篇 入门 阶乘 ,素数(2019年)数列求和(2021年),完数,完全平方数,因子求和,x的y次方。

目录

1: 计算s=1!+2!+3!+......+n!

2:素数问题2019

3:编写程序判断一个数是不是完数

4:编写函数 求x的y次方  完成pow(x,y)的功能

5:输出1到1000内所有完全平方数

6:求因子之和

数列求和


1: 计算s=1!+2!+3!+......+n!

#include<stdio.h>
long fac(int n)
{
    int i;
    long s=1;
    for (i = 1; i <= n; i++)
        s = s * i;
    return s;
}
void main()
{
    int i,n;
    scanf("%d", &n);
    long sum = 0;
    for (i = 1; i <= n; i++)
    {
        sum = sum + fac(i);
    }
    printf("%ld", sum);
}

2:素数问题(2019年)

(1)设计一个函数int  isprime(int x)用于判断一个整数是否是素数,是素数返回1,否则返回0。

(2) 在 主函数中调用isprime函数,输出100-999之间的个位数为7的所有的素数之和。

#include<stdio.h>
int isprime(int x)
{
	int i;
	for (i = 2; i < x; i++) 
		if (x % i == 0) return 0;
	return 1;
}
void main() {
	int i,sum=0;
	for (i = 100; i < 1000; i++)
	{
		if (i % 10 == 7) {
			if (isprime(i)) sum = sum + i;
		}
	}
	printf("%d", sum);
}

3:编写程序判断一个数是不是完数

完数,一般指完全数,一个自然数如果它的所有真因子(即除了自身以外的约数)的和等于该数,那么这个数就是完全数,如:6的真因子有1 、2、3,6=1+2+3,所以6是一个完全数。

一个数的因子最大到n/2

#include<stdio.h>
int pernum(int n) {
	int i,sum=0;
	for (i = 1; i <= n/2; i++) {
		if (n % i == 0) sum += i;
	}
	if (n == sum) return 1;
	else return 0;
}

4:编写函数 求x的y次方  完成pow(x,y)的功能

#include<stdio.h>
int fun(int x,int  y)
{
	int i,sum=1;
	for (i = 1; i <= y; i++)
		sum = sum * x;
	return sum;
}
void main()
{
	int x, y;
	scanf("%d%d", &x, &y);
	printf("%d", fun(x, y));
}

5:输出1到1000内所有完全平方数

平方数(或称完全平方数),是指可以写成某个整数的平方的数,即其平方根为整数的数。例如,9 = 3 × 3,9是一个平方数。

设sqrt(x)为 y ,满足 y*y==x则称x为完全平方数

#include<stdio.h>
#include<math.h>
//如果不让用sqrt函数就一个一个试
int fun(int x)
{
	int i;
	for (i = 1; i < x; i++)
	{
		if ((x / i) * (x / i) == x) return 1;
	}
	return 0;
}
//让用sqrt()直接这样写
int fun1(int x)
{
	int n;
	n = (int)sqrt(x);//这里加不加强转都一样 
	if (n*n == x) return 1;
	return 0;
}
void main()
{
	int i;
	for (i = 1; i <= 1000; i++) {
		if (fun1(i)) printf("%4d", i);
	}
}

6:求因子之和

int fun(int x)
{
	int s = 0, i;
	for (i = 1; i < x / 2; i++) {
		if (x / i == 0) s = s + i;
	}
	return s;
}

 

数列求和(2021年)

#include<stdio.h>
int cal(int n)
{
	int i, s = 0, f = 1;  //s为和,f为符号位
	for (i = 1; i <= n; i++) {
		i = i * f;
		s = s + i;
		f = -f;
	}
	return s;
}
void main()
{
	int n;
	scanf("%d", &n);
	printf("%d", cal(n));
}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小萌新上大分

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值