用c语言编写一个已知素数序列为2、3、5、7、11、13、17、19、23、29……,即素数的第一个是2,第二个是3,第三个是5……那么,随便挑一个数,若是素数,能确定是第几个素数吗?如果不是素数,则输出0的程序
时间: 2023-03-05 11:47:16 浏览: 439
判断一个数是否是素数的C语言代码
可以用C语言编写一个程序来确定一个随机给定的数是否是素数,如果是素数,就输出它是第几个素数,如果不是素数,就输出0。
以下是C语言的代码实现:
```
#include <stdio.h>
int main() {
int prime[1000] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29}; //已知素数序列
int n, i, j, flag;
printf("请输入一个整数:");
scanf("%d", &n);
if (n < 2) { //小于2的数不是素数
printf("0\n");
return 0;
}
for (i = 10; i < 1000; i++) { //从第11个素数开始,用已知素数序列判断更大的素数
flag = 1; //假设是素数
for (j = 0; j < i; j++) {
if (i % prime[j] == 0) { //能被已知素数整除,不是素数
flag = 0;
break;
}
}
if (flag == 1) { //是素数
prime[i] = i;
if (prime[i] == n) { //判断是否为第i个素数
printf("%d\n", i+1); //第i个素数的位置为i+1
return 0;
}
}
}
printf("0\n"); //不是素数,输出0
return 0;
}
```
这个程序首先读入一个整数n,然后判断n是否小于2,如果小于2,则输出0,表示它不是素数。如果n大于等于2,就从第11个素数开始,用已知素数序列去判断更大的素数。如果n是素数,就输出它是第几个素数;如果n不是素数,就输出0。
阅读全文