目录
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));
}