C 数学问题

素数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//判断素数的函数isPrime
int isPrime(int n)
{
int i;
//质数(素数)是指在大于 1 的自然数中,除了 1 和它自身外,不能被其他自然数整除的数
if(n<2)
{
return 0;
}
//检查i=2到i=sqrt(n)即n的平方根是否有因子
//在n较大时,对比i=2到i<=n-1提高了效率
for(i=2;i*i<=n;i++)
{
if(n%i==0)
{
return 0;
}
}
return 1;
}

斐波那契数列

1
2
3
4
5
6
7
8
9
10
11
12
13
//斐波那契数列的函数fibonacci
int fibonacci(int n)
{
if(n<=1)
{
return n;
}
else
{
//递归调用
return fibonacci(n-1)+fibonacci(n-2);
}
}

集合A与集合B的并集(AUB)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 合并两个线性表,结果存储在第三个线性表中,不包含重复元素
void unionList(List LA, List LB, List *LC) {
int lena, i;
ElemType e;
InitList(LC);
for (i = 1; i <= LA.Length; i++) {
GetElem(LA, i, &e);
ListInsert(LC, i, e);
}

lena = LA.Length;

for (i = 1; i <= LB.Length; i++) {
GetElem(LB, i, &e);
if (!LocateList(LA,e)) {
ListInsert(LC, ++lena, e);
}
}
}