2 therightoforange Therightoforange 于 2015.06.24 13:07 提问

求1到100的素数的C语代码 有多少种写多少种

求1到100的素数的C语言循环代码有多少种写多少种
求1到100的素数的C语言循环代码有多少种写多少种

8个回答

caozhy
caozhy   Ds   Rxr 2015.06.24 22:38
已采纳
 # include <stdio.h>
# include <math.h> 
int main() 
{ int i, j, c; c = 0; for (i = 100; i <= 200; i++)
{ c = 0; for (j = 2; j < sqrt(i); j++) { if (i%j == 0) c = 1; break; } 
if (c == 0)printf("%d是素数", i); } getchar(); return 0; 
}

每次循环前要先将c置0

运行结果
101是素数103是素数105是素数107是素数109是素数111是素数113是素数115是素数117是素数119是素数121是素数123是素数125是素数127是素数129是素数131是素数133是素数135是素数137是素数139是素数141是素数143是素数145是素数147是素数149是素数151是素数153是素数155是素数157是素数159是素数161是素数163是素数165是素数167是素数169是素数171是素数173是素数175是素数177是素数179是素数181是素数183是素数185是素数187是素数189是素数191是素数193是素数195是素数197是素数199是素数

danielinbiti
danielinbiti   Ds   Rxr 2015.06.24 13:14

http://blog.csdn.net/liukehua123/article/details/5482854
建议你自己读一遍基础的内容吧。

Therightoforange
Therightoforange 你能帮我修改一下吗,那网址里的都看不懂,有符号还没教
2 年多之前 回复
Therightoforange
Therightoforange # include <stdio.h> # include <math.h> int main() { int i, j, c; c = 0; for (i = 100; i <= 200; i++) { for (j = 2; j < sqrt(i); j++) { if (i%j == 0) c = 1; break; } if (c == 0)printf("%d是素数", i); } getchar(); return 0; }
2 年多之前 回复
danielinbiti
danielinbiti 回复Therightoforange: 注意==和=,上次回答过你。
2 年多之前 回复
Therightoforange
Therightoforange #include<stdio.h> int main() { int i; int j; int c = 0; for (j = 1; j < 100; j++) { c = 0; for (i = 2; i < j; i++) { if (j%i == 0) { c = 1; break; } } if (c = 0) { printf("%d is su shu\n", j); } } return 0; }
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.06.24 14:40

写程序相当于写作文,不是死记硬背多少种,而是掌握算法和原理,运用自如。一个程序你会写了你可以写出无数的写法。当然,你应该选择简单、高效、易读的方式去写。

Therightoforange
Therightoforange 谢谢,你人真好,应该我刚学,然后你链接的的那个最简单的那个一个”符号“还没接触到,连数组还没学,所以也就那样了,总之谢谢你了
2 年多之前 回复
Therightoforange
Therightoforange   2015.06.24 14:32

#include
int main()
{
int i;
int j;
int c = 0;
for (j = 1; j < 100; j++)
{
c = 0;
for (i = 2; i < j; i++)
{
if (j%i == 0)
{
c = 1;
break;
}
}
if (c = 0)
{
printf("%d is su shu\n", j);
}
}
return 0;
}

caozhy
caozhy   Ds   Rxr 2015.06.24 14:36

if (c = 0)
c == 0
之前好像纠正你了,又错了。

Therightoforange
Therightoforange # include <stdio.h> # include <math.h> int main() { int i, j, c; c = 0; for (i = 100; i <= 200; i++) { for (j = 2; j < sqrt(i); j++) { if (i%j == 0) c = 1; break; } if (c == 0)printf("%d是素数", i); } getchar(); return 0; }
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.06.24 14:39

另外,1不是素数。
程序有些地方可以优化,比如
for (i = 2; i < j; i++)
这里循环到j<j/2就够了

另外,还可以用一个数组记录已经找到的素数。
不需要每个都判断,只要判断这个素数表中的素数就可以了。因为不能被素数整除,必然不能被它们的积整除。

除了穷举,还有筛选法也可以求素数,具体google

caozhy
caozhy 回复txjzws: 就lz的问题,求平方根的开销大于减少循环带来的好处
2 年多之前 回复
txjzws
txjzws 是循环到j的平方根就可以了吧。
2 年多之前 回复
Therightoforange
Therightoforange   2015.06.24 21:30

include

include

int main()
{
int i, j, c;
c = 0;
for (i = 100; i <= 200; i++)
{
for (j = 2; j < sqrt(i); j++)
{
if (i%j == 0)

                c = 1;
            break;
        }
        if (c == 0)printf("%d是素数", i);
    }
getchar();
return 0;

}

caozhy
caozhy   Ds   Rxr 2015.06.24 22:38

另外一个帖子问一个问题,记得及时采纳。

Csdn user default icon
上传中...
上传图片
插入图片