搜索
查看: 885|回复: 4
打印 上一主题 下一主题

我想列出100~200的质数,求大神修改

[复制链接]
跳转到指定楼层
楼主
发表于 2014-9-14 14:53:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
        int k,a,i,fa;
    for(k=100;k<=200;k++)
   fa=0;
            for(i=2;i<=k-1;i++)
    {if(k%i==0){fa=1;break;}
    if(fa==0)printf("%d\n",k);}
        system("pause");
    return 0;
             }  

沙发
发表于 2014-9-14 15:31:51 | 只看该作者
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
        int k,a,i,fa;
    for(k=100;k<=200;k++)
    {
                fa=0;
                        for(i=2;i<=k-1;i++)
                                if(k%i==0)
                {
                                        fa=1;
                    break;
                }
                if(fa==0)printf("%d\n",k);
    }
    system("pause");
    return 0;
}
[/mw_shl_code]
板凳
发表于 2014-9-19 21:07:53 | 只看该作者
不如使用筛选法吧,建立一个空间为200的数组。然后一个一个筛选,大概到(int) sqrt(MAX)就可以了,实在不行就加一。
最后可以得到1至200内的所有质数,然后从101开始输出。
(可惜,O(N^2)。)
地板
发表于 2014-9-19 21:44:47 | 只看该作者
Amath13 发表于 2014-9-19 21:07
不如使用筛选法吧,建立一个空间为200的数组。然后一个一个筛选,大概到(int) sqrt(MAX)就可以了,实在不行 ...

筛法不是O(N^2)……
5#
发表于 2014-9-22 20:28:05 | 只看该作者
楼上的,额,当时一时脑抽——乱写的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表