素数c语言程序(找出10000以内所有的素数质数)

1. 素数c语言程序,找出10000以内所有的素数质数?

#include <stdio.h>

#include <math.h>

int main(void)

{int x,k,flag,n=0; /*n用来控制每行输出10个数*/

for(x=2;x<=10000;x++)

{flag=1;

for(k=2;k<=sqrt(x);k++)

if(x%k==0) {flag=0; break;}

if(flag==1)

{if(n%10==0) printf("\n"); /*10个数一行*/

n++;

printf("%5d",x);

}

}

getchar();

}

素数c语言程序(找出10000以内所有的素数质数)

2. c语言求1到n所有质数之和?

要求1到n所有质数之和,需要编写2个函数,第一个函数是用于判断一个数是否为质数,求解方法是从2开始到n/2依次去除n,如果能整除,那么返回1表示为质数,否则返回0表示为合数,第二个函数用于求和,从2开始(1不是质数也不是合数,排除)到n遍历,如果是质数,那么就累加,最后得到1到n所有质数之和。

3. c语言100到209最大素数之和?

题主的题目描述就有问题,既然是最大素数,就只有一个,哪里还有什么求和的事。

姑且把题目当成两个要求,其一是求100到209之间的所有素数之和,其二是求100到209之间的最大素数。写法如下。

int main()

{

//是否素数的标记

int flag = 0;

//最大的素数

int maxprime = 0;

//素数之和

int sumprime = 0;

for (int i = 100; i <= 209;i++ )

{

flag = 0;

//从2开始,到被检测数的一半的数作为除数,去试探被检测数能否被整除

for (int j = 2; j <= i/2; j++)

{

if (i % j == 0)

{

flag = 1;

}

}

if (flag == 0)

{

maxprime = i;

sumprime += i;

}

}

printf("100到209的素数之和:%d\n",sumprime);

printf("100到209的最大素数:%d\n",maxprime);

}

4. C语言素数求和?

intprime(intn){inti,j=0;for(i=2;i<n;i++){if(n%i==0){j=1;return0;}}if(j==0)returnn;}intmain(){inti,j,n,sum=0;scanf("%d",&n);for(inti=n;n>0;++i){sum=sum+prime(i);if(prime(i)!=0){n--;}}printf("%d",sum);return0;}主要是你之前的while每次i又重新赋值了,还是不定追问。

5. C语言中怎么判断素数?

C语言判断素数(求素数)(两种方法)

素数又称质数。所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。

思路1):因此判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。

思路2):另外判断方法还可以简化。m 不必被 2 ~ m-1 之间的每一个整数去除,只需被 2 ~ 之间的每一个整数去除就可以了。如果 m 不能被 2 ~ 间任一整数整除,m 必定是素数。例如判别 17 是是否为素数,只需使 17 被 2~4 之间的每一个整数去除,由于都不能整除,可以判定 17 是素数。

原因:因为如果 m 能被 2 ~ m-1 之间任一整数整除,其二个因子必定有一个小于或等于 ,另一个大于或等于 。例如 16 能被 2、4、8 整除,16=2*8,2 小于 4,8 大于 4,16=4*4,4=√16,因此只需判定在 2~4 之间有无因子即可。

两种思路的代码请看解析。

思路1) 的代码:

#include <stdio.h>

int main(){

int a=0; // 素数的个数

int num=0; // 输入的整数

printf("输入一个整数:");

scanf("%d",&num);

for(int i=2;i<num;i++){

if(num%i==0){

a++; // 素数个数加1

}

}

if(a==0){

printf("%d是素数。\n", num);

}else{

printf("%d不是素数。\n", num);

}

return 0;

}

思路2)的代码:

#include <stdio.h>

#include <math.h>

void main(){

int m; // 输入的整数

int i; // 循环次数

int k; // m 的平方根

printf("输入一个整数:");

scanf("%d",&m);

// 求平方根,注意sqrt()的参数为 double 类型,这里要强制转换m的类型

k=(int)sqrt( (double)m );

for(i=2;i<=k;i++)

if(m%i==0)

break;

// 如果完成所有循环,那么m为素数

// 注意最后一次循环,会执行i++,此时 i=k+1,所以有i>k

if(i>k)

printf("%d是素数。\n",m);

else

printf("%d不是素数。\n",m);

return 0;

}

两段代码的输出结果相同。

第一次运行结果:

输入一个整数:1

1是素数。

第二次运行结果:

输入一个整数:97

97是素数。

第三次运行结果:

输入一个整数:10

10不是素数。

6. c语言最小公倍数公式?

最小公倍数的公式,首先要了解怎么求最小公倍数,求最小公倍数至少有两个数,最小公倍数就是把这几个数公有的约数和商相乘得到的数就是这两个数的最小公倍数,例如求45和63的最小公倍数,首先我们先找这两个数的约数有的,如果一眼看不出来的就从最小的质数去除,我直接用9去除得到的数是5和7,5和7是互质数这道题就做完了,那么他们的最小公倍数是9x5x7=315,最后注意除到的商必须两两互质,在求最小公倍数

7. C语言编程求出200到300之间的全部素数?

思路:定义一个函数用于判断该数是否是素数,接着从200到300进行依次判断该数是否是素数,如果是则累加,最后输出累加和即可。参考代码:

免责声明:本文作者:“游客”,版权归作者所有,观点仅代表作者本人。本站仅提供信息存储分享服务,不拥有所有权。信息贵在分享,如有侵权请联系ynstorm@foxmail.com,我们将在24小时内对侵权内容进行删除。
(79)
乐华驱动板(电视左下角出现安全模式怎么解
上一篇 2023年11月30日
wm6.5主题(为什么很多人都用UC浏览
下一篇 2023年11月30日

相关推荐

返回顶部