| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 938 人关注过本帖
标题:输出n以内的素数 不知道哪错了
只看楼主 加入收藏
liufashuai
Rank: 9Rank: 9Rank: 9
来 自:冥界-魔域-魂殿
等 级:蜘蛛侠
威 望:1
帖 子:370
专家分:1374
注 册:2012-6-22
收藏
得分:3 
洒家也来奉献一个:
程序代码:
#include<stdio.h>
#include<math.h>


int s(int k)
{
    int i;
    int flag = 1;
   
    for(i=2;i< sqrt(k) && flag; i++)
    {
        if(0 == k%i)
            flag = 0;
    }
    if(flag)
        return 1;
    return 0;
}

void main()
{
    int i,n;
   
    printf("please input a number here:\n");
    scanf("%d",&n);
   
    if(n >=2)
        printf("%d\n",2);

    for(i=3;i<=n; i+=2)
    {
        if(s(i))
            printf("%d\n",i);
    }
}



函数也可以这样写:
程序代码:
int s(int k)
{
    int i;
   
    for(i=2; i<= sqrt(k) && k%i; i++);

    if(i > sqrt(k))
        return 1;
    return 0;
}




[ 本帖最后由 liufashuai 于 2013-8-8 09:49 编辑 ]

有一种落差是,你配不上自己的野心,也辜负了所受的苦难。






2013-08-08 09:46
我爱敲代码
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:70
专家分:165
注 册:2013-4-23
收藏
得分:2 
循环的这样改一下就OK了:
for(i=2;i<k;i++)
{
    if(k%i==0) return 0;   
}
return 1;
2013-08-08 10:10
快速回复:输出n以内的素数 不知道哪错了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017361 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved