当前位置:首页 » 编程语言 » c语言素数1100穷举法
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言素数1100穷举法

发布时间: 2022-11-26 17:10:49

c语言,找1到1000的素数怎么做呢

#include<stdio.h>
intmain()
{
charnum[1001];
inti,n;
memset(num,0x00,sizeof(num));
for(n=2;n<32;n++)
for(i=2;i*n<1001;i++)
num[i*n]=1;
printf("1到1000素数为: ");
for(i=2;i<1001;i++)
if(num[i]==0)
printf("%d ",i);
return0;
}
大概和素数表对照了一下,最后几个数是对的.

❷ c语言求3-1100之间的素数(判断素数由函数实现) bbs.bccn.net

#include "<a href="https://www..com/s?wd=stdio.h&tn=44039180_cpr&fenlei=---EUBtkn1fLnWcYnjnzP1nzrjnLPWR" target="_blank" class="-highlight">stdio.h</a>"
int isprime(int n) //判断n是否为素数,是返回1,不是返回0
{
int i;
if(n==1)
return 0; //1不是素数
for(i=2;i<=n/2;i++) //如果从2开始,到这个数半值时,有一个数能被整除,则不是素数
if(n%i==0)
return 0;
//从2开始,到这个数一半值时,没有一个能整除,则是素数
return 1;
}
int main()
{
int sum=0;
int i;
for(i=3;i<=100;i++)
if(isprime(i)==1) //是素数就加到sum上去,
sum+=i;
printf("3到100之间的素数之和为:%d\n",sum);
}

❸ c语言求1-1000素数的算法问题

循环嵌套,外层循环是从1-1000的数字i(1排除,这你应该明白),内层是对数字i的素数判断。
素数:除了1和它本身外没有别的因子。也可以理解为:除了1和它本身,其他数来除它余数都不是0。
所以内层循环用从2开始到i的平方根(取整)依次求余,因为到了平方根以后,再增加除数,得到的商是小于平方根的,等于以前取过的除数。所以平方根以后不用再算了。
如果有=0的余数(if(i%j
==0)),说明正在判断的数字不是素数,用break语句退出内层循环;如果没有=0的余数,开关数w不归零,if(w)后的语句执行,计数器n自加一次(找到一个素数),并打印当前检验数i。
打印前有一个if判断,如果计数器n满整10(能够被10整除)就换行,也就是说这个素数表每行10个数。不换行数字键隔一个列表间隔(等于tab)。

❹ C语言求素数

#include<stdio.h>
#include<math.h>
voidmain()
{
intx=100,d=999,a,i,temp;

for(x;x<=d;x++)
{
temp=0;
a=sqrt(x);
for(i=2;i<=a;i++)
{

if(x%i==0)
{
temp=1;
break;
}
}

if(temp==0)
printf("%d",x);
}
}

❺ 求c语言程序 求1000以内的素数

可以编写一个素数考察函数,在主函数中调用该函数对1000以内的整数穷举考察求解,也可以在主函数中直接对1000以内的整数穷举考察求解。这里提供一个用筛选法求解的代码,思路是声明一个大于等于1000个元素的char型(int型当然也可以,这里只是为了减少空间开销)数组并全部初始化为1,对下标不是素数的元素清0,最后依次输出不为0元素的下标便是题解。为提高操作效率,用2~33间(33^2>1000了,所以考察已充分了)的素数去除大于这个素数而小于等于1000的不为0的数,能整除的便将这个下标的元素清0。当用小于33的最大素数考察完毕后,依次输出数组中不为0的元素下标即可。代码如下:

#include"stdio.h"
intmain(intargc,char*argv[]){
inti,j;
charm[1001];//声明char型数组作为筛选对象
for(m[0]=m[1]=0,i=2;i<=1000;m[i++]=1);//m[0]和m[1]赋0,其余赋1备选
i=2;//考察次数2~33,用期间的素数去除大于i且小于等于1000间不为0的数
while((j=i)<33){
while(!m[++j]);//取j为大于i的第一个不为0的数为起始考察对象
while(j<=1000){
if(j%i==0)//这个数若能被小于它的素数整除则以它为下标的元素清0
m[j]=0;
while(!m[++j]);//下一个不为0的数为考察对象
}
while(!m[++i]);//2~33间的下一个素数
}
for(j=i=0;i<=1000;i++)//以下是输出
if(m[i])//不为0的数组元素的下标便是素数
printf(++j%20?"%4d":"%4d ",i);//每行输出20个
if(j%20)
printf(" ");
return0;
}

运行结果如下:

❻ 如何用穷举法在1—100之间找出所有的质数用C语言编程实现

对1-100的所有数进行遍历,逐一判断每个数是否为素数。

判断素数的算法有很多,比较基础的是逐一求余,如果除了1和本身外,还有其它数可以整除那么就不是素数。

代码如下:

#include<stdio.h>
intmain()
{
inti,j;
for(i=2;i<100;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0)break;//可以整除,退出循环。代表不是素数。
}
if(j==i)//没有提前退出循环,代表是素数,打印。
printf("%d,",i);//打印i值。
}

return0;
}

❼ C语言求1~1000素数的简单程序

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
void fun(int m,int *k,int xx[])
{
int i,j,n=0,t;
for(i=100;i<m;i++)
{
t=1;
for(j=2;j<i;j++)
if(i%j==0)
{
t=0;
break;
}
if(t==1)
xx[n++]=i;
}
*k=n;
}
void main()
{
int m,n,zz[100];
system("CLS");
printf("please enter the up number:\n");
scanf("%d",&n);
fun(n,&m,zz);
printf("\nthere are %dprime number less than %d:\n\n ",m,n);
for(n=0;n<m;n++)
printf("\n %4d",zz[n]);
}
提示叫你输入数字的时候,你输入1000就可以看见这中间的素数了

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

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

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

注意事项:

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

❾ 用C语言编程 打印出3到1100 之间的全部素数(判素数由函数实现)

/*求2个素数之间个数*/
#include<stdio.h>
#include<math.h>
int
count_prines(int,int);
void
main(void)
{
int
m,n,t;
printf("请输入2个自然数:");
scanf("%d%d",&m,&n);
t=count_prines(m,n);
printf("在%d和%d之间有%d个素数
",m,n,t);
}
/*素数统计函数*/
int
count_prines(int
m,int
n)
{
int
i=0,s,k=0,tag=1;
if(m>n)s=m,m=n,n=s;
if(n==2)k=1;
else
if(n>2)
{
if(m<=2)k=1,m=3;
else
m+=1-m%2;
for(;m<=n;m+=2)
{
tag=1;
s=(int)sqrt(m);
for(i=3;tag&&i<=s;i+=2)
tag=m%i;
k+=(tag>0);
}
}
}
这个是统计两个数之间的全部素数,很快的,希望对你有帮助!