C语言 求1——20所有素数之和 C语言 求10-20以内素数之和
来自:五金 投稿:2025-11-03
我马上要被断网了,给你一个求素数的程序吧。
#include "stdio.h"
#define N 100
void main()
{
int i,n=0,j;
for(i=2;i<=N;i++)
{
for(j=1;j<=i;j++)
if(i%j==0) n++;
if(n<=2)
printf("%d,",i);
n=0;
}
}
{
int m,i;
for(m=2;m<=10;m++)
{
for(i=2;i<m;i++)
if(m%i!=0) /*为什么要用!=呢,这样只要遇到不能被整除的数就会结束循环,这样有些数字就会判断错误*/
break; //跳出内层循环
printf("%3d",m); /*这个输出在外层循环中,只要内层循环结束,就会执行,所以就算break起作用了,也只是跳出内层循环,还是会执行这一句,所以会顺序输出m的值*/
}
}
改:
{
int m,i;
for(m=2;m<=10;m++)
{
for(i=2;i<=m;i++) //改成i<=m,因为素数只能被1和他本身整除
if(m%i==0)//判断是否有数能将m整除
break; //有则跳出内层循环
if(i==m)/*如果m能被其他数整除,则跳出循环后i值一定比m小,如果只被m本身整除,则跳出循环后i==m,证明m为素数*/
printf("%3d",m); //满足条件才输出
}
}
//1--20的素数是2 3 5 7 11 13 17 19 和为:77
#include<stdio.h>
int fun(int m)
{
int i;
if(m<2) return 0;
for(i=2;i<=m/2;i++)
if(m%i==0) return 0;
return 1;
}
void main( )
{
int n=0,i;
for(i=1;i<=20;i++)
if(fun(i))
n+=i;
printf("sum=%d\n",n);
}
楼上的不出结果 我这个又短又正确
#include <stdio.h>
main()
{
int i,sum=0;
for (i=1;i<=20;i++)
if (i%2!=0)
sum+=i;
printf("%d",sum);
}
#include<stdio.h>
void main()
{int n,i;
for(n=1;n<20;n++)
for(i=2;i<=n;i++)
{if(n%i==0)
break;
}
if(n==i)
printf("%4d",n);
}
#include<stdio.h>
void main()
{
int i,j,sum=0,count;
for(i=2;i<=20;i++)
{
count=1;
for(j=1;j<i;j++) //判断i有无其它因数
if(i%j==0&&j!=1)
count=0;
if(count)
sum+=i;
}
printf("%d",sum);
}
