写一段c语言代码求1到100的素数
时间: 2023-03-14 14:12:47 浏览: 74
#include <stdio.h>
int main()
{
int i, j, flag;
printf("以下是1到100之间的素数:\n");
for(i=2; i<=100; i++)
{
flag = 0;
for(j=2; j<=i/2; j++)
{
if(i%j == 0)
{
flag = 1;
break;
}
}
if(flag == 0)
{
printf("%d ",i);
}
}
return 0;
}
相关问题
写一段求素数的c语言代码
以下是求素数的c语言代码:
```
#include<stdio.h>
#include<math.h>
int is_prime(int n) {
if (n <= 1) {
return 0;
}
int i;
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n, i;
printf("请输入整数n:");
scanf("%d", &n);
printf("从1到%d的素数有:\n", n);
for (i = 1; i <= n; i++) {
if (is_prime(i)) {
printf("%d ", i);
}
}
return 0;
}
```
这段代码中,定义了一个名为`is_prime`的函数,用于判断一个整数是否为素数。主程序`main`中,读入了一个整数`n`,并通过循环调用`is_prime`函数来求出从1到`n`的素数。
帮我写一段c语言代码,求1000以内的质数有多少个
以下是求1000以内的质数个数的C语言代码:
```
#include <stdio.h>
int main() {
int i, j, count = 0, is_prime;
for (i = 2; i <= 1000; i++) {
is_prime = 1; // 假设i是质数
for (j = 2; j < i; j++) {
if (i % j == 0) { // i不是质数
is_prime = 0;
break;
}
}
if (is_prime) { // i是质数
count++;
}
}
printf("1000以内的质数个数为:%d\n", count);
return 0;
}
```
代码分析:
1. 使用两个循环,分别遍历2到1000之间的所有数字。
2. 设置一个is_prime变量,初始值为1,表示假设当前数字是质数。
3. 在第二个循环中,从2到当前数字之间遍历,如果当前数字能被整除,说明不是质数,将is_prime变为0,退出循环。
4. 如果is_prime仍然为1,说明当前数字是质数,累加质数个数。
5. 最后输出质数个数。
注意:该代码算法比较简单,但是效率不高,因为对于每个数字,都需要从2到该数字之间遍历判断是否是质数,可以采用更高效的算法,如埃氏筛法来优化。