我今天专门编写了一个素数的子程序,来尝试一下,但出现了一个错误
今天没照出来,明天慢慢找,先记在这里
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 ? "=:%d" : "=:%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; 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: 没有那个文件或目录
