我今天专门编写了一个素数的子程序,来尝试一下,但出现了一个错误
今天没照出来,明天慢慢找,先记在这里
prime (int number)
{
int i,j;
if (number%2 == 0) return (0);
j = sqrt((double)number) + 1;
for (i = 3;i <= j;i += 2)
if (number % i == 0 ) return (0);
return (1);
}
这是我的素数子程序 prime.c
#include <stdio.h>
#include <math.h>
main()
{
int i,count;
printf ("There are invertable primes with 4 digits :\n");
for (count = 0,i = 1001;i < 9999;i += 2)
if ( num(i) )
printf (count%9 ? "%3d:%d" : "%3d:%d\n", ++count,i);
}
num(int number)
{
int i,j;
if (!prime(number)) return(0);
for (i = number,j = 0;i > 0;i /= 10)
j = j*10 + i%10;
if (number < j)
if (!prime(j)) return (0);
else return (1);
else return (0);
}
这是我的主程序 32.c
然后我用 [root@localhost 31-35]# gcc 32.c prime.c -o 32
prime.c: 在函数 ‘prime’ 中:
prime.c:6: 警告:隐式声明与内建函数 ‘sqrt’ 不兼容
/tmp/ccqvxqyT.o: In function `prime':
prime.c:(.text+0x0): multiple definition of `prime'
/tmp/ccsfXK0A.o:32.c:(.text+0x18d): first defined here
/tmp/ccsfXK0A.o: In function `prime':
32.c:(.text+0x1c7): undefined reference to `sqrt'
/tmp/ccqvxqyT.o: In function `prime':
prime.c:(.text+0x3a): undefined reference to `sqrt'
collect2: ld 返回 1
[root@localhost 31-35]# ./32
bash: ./32: 没有那个文件或目录