C语言输出100到一千之间所有素数

#include <stdio.h>
#include <math.h>
int main()
{
int i=2, a=100, flag=0;
for (a=100;a<=1000;a++)
{
flag=0;
while (i<=sqrt(a))
{
if (a%i==0)
{
flag=1;
break;
}
i++;
}
if (flag==0)
printf("%5d",a);
}
}
我的程序怎么修改啊??

首先打开CodeBlocks,创建一个新项目。项目语言,选择“c”,就可以写程序判断素数了,具体方法为:

1、创建好项目后,我们打开 “main.c”文件。

2、首先是实现输入口。

3、输入口完成后,接下来就是判断素数。 

4、先定义好相关的变量,这里result是用来存储因子之和的,用循环,遍历所有可能因子。

5、执行完for循环后,result中存入的就是 prime的因数之和,其中也包括它本身。接下来只要判断 prime+1 是否与result相等。如果相等,就表示result中是1+数本身,即为素数。

6、编译运行一下,看看结果。

注意事项:

质数被利用在密码学上,所谓的公钥就是将想要传递的信息在编码时加入质数,编码之后传送给收信人,任何人收到此信息后,若没有此收信人所拥有的密钥,则解密的过程中(实为寻找素数的过程),将会因为找质数的过程(分解质因数)过久,使即使取得信息也会无意义。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-02-14
#include <stdio.h>
#include <math.h>
int main()
{
    int i=2, a=100, flag=0;
    for (a=100;a<=1000;a++)
    {
        flag=0;
        i= 2;//这里增加一句这个
        while (i<=sqrt(a))
        {
            if (a%i==0)
            {
                flag=1;
                break;
            }
            i++;
        }
        if (flag==0)
            printf("%5d",a);
    }
}

本回答被提问者采纳
第2个回答  2014-11-05
#include <stdio.h>
int main()
{
for (int i=100;i<=1000;i++)
{
int k = i-1;
while(k>=2)
{
if (i%k==0)
{
break;
}
k--;
}
if (k==1)
{
printf("%d是素数\n",i);
}
}
return 0;
}
相似回答