我想找到100内的所有素数.这是我的代码.
// Find all the prime number within 100.
#include<stdio.h>
#include<math.h>
#include<stdbool.h>
int main() {
int i,n;
int j = 0;
for ( n = 2; n <= 100; ++n) {
bool isPrime = true;
for (i = 2; i <= sqrt(float(n)); ++i) {
if(n % i == 0) {
isPrime = false;
break;
}
}
if(isPrime) {
++j;
printf("%d is a prime number\n",n);
}
}
printf("The total number of prime number within 100 is %d\n",j);
return 0;
Run Code Online (Sandbox Code Playgroud)
}
编译时,有一个错误.
prime.c:14:8: error: expected expression before ‘float’
m = float(n);
^
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙解决这个问题吗?谢谢.
你在使用时使用了错误的语法(你使用的是C++的许多样式之一,但对于C只有一种方式).更改:
sqrt(float(n))
Run Code Online (Sandbox Code Playgroud)
至
sqrt((float)n)
Run Code Online (Sandbox Code Playgroud)
但请注意,这sqrt需要a double,严格来说,这应该是:
sqrt((double)n)
Run Code Online (Sandbox Code Playgroud)
另请注意,强制转换不是必需的,您只需编写:
sqrt(n)
Run Code Online (Sandbox Code Playgroud)