题目
本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出两个正整数M和N。
输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。
解决方法
#include<stdio.h> int main() { int M,N; int counter=0; int sum=0; int i,j; scanf("%d %d",&M,&N); for(i=M;i<=N;i++) { for(j=2;j<=i-1;j++) { if(i%j==0) break; } if(j==i) { sum=sum+i; counter=counter+1; } } printf("%d %d",counter,sum); return 0; }
2.数组求素数
#include<stdio.h> int main() { const int maxNumber = 11 ; int isprime[maxNumber]; int i; int x; for( i=0; i<maxNumber; i++) { isprime[i]=1; } for( x=2; x<maxNumber; x++) { if (isprime[x]) { for( i=2; i*x<maxNumber; i++) { isprime[i*x]=0; } } } for( i=2; i<maxNumber; i++) { if(isprime[i]) { printf("%d\t",i); } } printf("\n"); return 0; }