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;
}

C语言输出100到一千之间所有素数?
方法:筛选法 代码:

C语言输出100到一千之间所有素数
首先打开CodeBlocks,创建一个新项目。项目语言,选择“c”,就可以写程序判断素数了,具体方法为:1、创建好项目后,我们打开“main.c”文件。2、首先是实现输入口。3、输入口完成后,接下来就是判断素数。4、先定义好相关的变量,这里result是用来存储因子之和的,用循环,遍历所有可能因子。5、执行...

如何用c语言输出所有的素数?
1、输出1-100以内的素数:2、同样,也是输出1-100以内的素数,这个构造一个数组,将其所有元素初始化为1,表示素数,这时取x从2开始,到100以内做循环。若x为素数,即prime[x]!=0,使得每个i*x位置元素置0(prime[i*x]=0),表示为非素数,循环结束前x+1。3、该方法是输出100个素数,基本...

C语言编程求100—1000内的素数个数及和?
} printf("100~1000之间共有 %d 个素数\\n它们的和是:%ld",count,sum);}

C语言输出100至1000间的素数
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;}

求助!大侠帮帮忙,设计一个c语言程序,输出100到1000的素数。_百度...
{ int sum = 0;int j = 0;for (int i = 999; i > 0; i-=2)\/\/只对单数进行运算,忽略双数 { if (IsPrimeNumber(i)){ printf("Prime[%d] = %d, ", j, i);\/\/数组下标从零开始 sum += i;\/\/求和 if (++j >= 10)break;} } printf("\\n");\/\/换行 printf("sum = %d...

编写程序求出100到1000范围内所有素数的和c语言
include<stdio.h> include<math.h> int isprime(int n){int i;for(i=2;i<=sqrt(n);i++)if(n%i==0)return 0;return 1;} int main(){ int i,s=0;for(i=101;i<1000;i+=2)if(isprime(i))s+=i;printf("%d\\n",s);getch();return 0;} ...

用C语言输出100之间的所有质数
建立主函数:2、主函数上面新建一个判断素数的函数isPrime,判断依据是小于从2到算数平方根的数即是素数。然后在主函数中遍历2到100的数,调用isPrime判断满足素数条件就输出:3、写完代码最后打开编译后的调试窗口,屏幕就会打印出100以内的所有有素数了。以上就是用C语言输出100之间的所有素数的操作:...

C语言 输出1到100之间的全部素数?
要实现C语言输出1到100之间的所有素数,有三种方法可供选择:首先,你可以采用一种直观的遍历方法,从2开始,对每个数x进行检查。初始化一个数组,所有元素设为1,表示为素数。接着,对于每个x,如果它是个素数(即数组prime[x]不为0),将其所有倍数位置(prime[i*x])设为0,表示为非素数。这个...

用c语言,题目是:由计算机生成100个1000内的随机数,找出素数,显示...
break; if(j>sqrt(i)) return true;}int main(){ int i; for(i=1;i<=100;i++) { int num=rand()%1000; if(is_prime(num)==1) { printf("%d\\t",num); } } return 0;}

相似回答