本文共 978 字,大约阅读时间需要 3 分钟。
用户输入一个数,然后输出从1开始一直到这个数为止(包括这个数)中所有的合数的和。
一个整数N,0<N<=1000
一行,一个整数,即从1到N中所有合数的和
样例一:100
样例二:9
样例一:3989
样例二:27
先找出素数,然后把不是素数的和相加。
#include #include #include using namespace std;#define N 10010int prime[N];bool check[N];int main(){ memset(check,0,sizeof check); int tot=0; int n,sum=0; scanf("%d",&n); for(int i=2;i<=n;i++){ if(!check[i]) prime[tot++]=i; for(int j=0;j n) break; check[i*prime[j]]=1; if(i%prime[j]==0) break; } } for(int i=2;i<=n;i++) if(check[i]) sum+=i; printf("%d\n",sum); return 0;}
转载于:https://www.cnblogs.com/shenben/p/5516769.html