在我们刷题时经常会遇到素数问题。
素数:能被1和本身整除的数,即为素数;
例如: 2,3,5,7,11,13均符合这样的特征。
如何使用C语言去筛选出素数呢?
不妨反向思考一下,素数除了1和本身(n)外,能被(1,n)的某个数值整除。
这样我们可以这样定义:
int is_prime (int n){
for (int i=2; i <n; i++){
if (n % i ==0 ) return 0;}
return 1;
}
【例】查找第10001个素数值是多少?
直接上C代码
# include <stdio.h>
int is_prime(int n){
for (int i=2; i<n; i++){
if(n % i ==0) retrun 0;}
return 1;
}
int main(){
int i=2, n=1;
while( n<10001){
i += 1;
if (!is_prime(i)) continue;
n +=1;
}
printf("%d\n, i);
return 0;
}
结果
104743
网友评论