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 你能帮我修改一下吗,那网址里的都看不懂,有符号还没教
大约 3 年之前 回复
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; }
大约 3 年之前 回复
danielinbiti
danielinbiti 回复Therightoforange: 注意==和=,上次回答过你。
大约 3 年之前 回复
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; }
大约 3 年之前 回复
caozhy
caozhy   Ds   Rxr 2015.06.24 14:40

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

Therightoforange
Therightoforange 谢谢,你人真好,应该我刚学,然后你链接的的那个最简单的那个一个”符号“还没接触到,连数组还没学,所以也就那样了,总之谢谢你了
大约 3 年之前 回复
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; }
大约 3 年之前 回复
caozhy
caozhy   Ds   Rxr 2015.06.24 14:39

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

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

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

caozhy
caozhy 回复txjzws: 就lz的问题,求平方根的开销大于减少循环带来的好处
大约 3 年之前 回复
txjzws
txjzws 是循环到j的平方根就可以了吧。
大约 3 年之前 回复
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
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
1 2 5组合100,有多少种方法
问题描述:用随意多个1 2 5三个数字的组合,使其值为100,有多少种组合方法?         基础解法:穷举法,1穷举100次,2穷举50次,5穷举20次,这种方法总共穷举的次数为100*50*20=100 000,性能太差,但是为了以后描述问题,先给出穷举法的代码: for(int i = 0; i <= 100; i += 5){ for(int j = 0;
1.2.2一个数可以有多少种用连续素数之和表示
#include using namespace std; const int maxp=2000,n=10000; int prime[maxp],total=0; bool isprime(int k)//bool函数用来求素数 { for(int i=0;i<total;i++) if(k%prime[i]==0)//判断素数的一种方法(用这个数对数组当中所有的 素数 进行取余;
有1元、5元、10元、20元、50元、100元硬币无数个,问100000元的组合方法有多少个
package com.coolxia.具体; import java.util.ArrayList; class Test1 { static int count = 0; static int fun(int stairs, int max, int[
计算1到100000以内的质数
<?php //计算1到100000以内的质素(素数,即只能被1和自身整除的数) //方法一:效率最差的一种 function calculate1() { $resultArray = array(); //外层循环控制需要测试的所有数字 for($i = 1; $i <= 100000; $i++) { //首先假定当前被检测数字为质素 $flag = true; f
编程实现 1元,2元,5元,100元纸币组成800元,共有多少种情况。?
#include using namespace std; void main() { //int[] a={1,2,5,10,20,50}; int a[]={1,2,5,100}; int count=0; int sum=0; for(int i=0;i<800;i++){ for(int j=0;j<400;j+
深入解析之将100元兑换为1元、5元、10元的零钱,请问有多少种兑换方法
要将100元兑换为1元、5元、10元的零钱,请问有多少种兑换方法?这道算法题不知不觉走进了我的世界,引起了我极大的兴趣。现在就将我对它的研究分享出来,供大家点评。        看到这个题目的第一感觉就是一个三元一次方程的求解,编程的话,就是三个for循环外加个if判断,瞬间KO。对这个题目来说效率也是可以接受的。可是这根本没有体现出算法的优势。下面我们来仔细推敲下这里面隐藏的规律。     
从1到100的求和
public class Test02 { public static void main(String[] args) { /** * 从1到100的求和 * 普通方法和递归方法 */ System.out.println(sum(100)); System.out.println(sum1(100)); } public static int sum(i
C语言经典算法:求1-100之间素数
C语言经典算法:求1-100之间素数
C++作业01_02:100元钱,由2元、1元、5角三种面额组成,且一共有100张,试打印出各种组合
#include /* 作业 Ex01_02 邵发 1309班 2013020240 100元钱,由2元、1元、5角三种面额组成,且一共有100张,试打印出各种组合 */ int main() { int i, j, k; for(i=0; i<=50; i++) { for(j=0; j<=100; j++) { for(k=0;
【面试题】N级台阶(比如100级),每次可走1步或者2步,求总共有多少种走法?
走台阶算法(本质上是斐波那契数列)在面试中常会遇到,描述就如题目那样:总共100级台阶(任意级都行),小明每次可选择走1步、2步或者3步,问走完这100级台阶总共有多少种走法?一、 题目分析这个问题本质上是斐波那契数列,假设只有一个台阶,那么只有一种跳法,那就是一次跳一级,f(1)=1;如果有两个台阶,那么有两种跳法,第一种跳法是一次跳一级,第二种跳法是一次跳两级,f(2)=2。如果有大于2级的n级