3904 - 非素数之和
时间限制 : 1 秒
内存限制 : 128 MB
大家都做过素数之和的题目,应该都了解方法了吧,那么非素数之和是否也可以了呢?试试看吧!
题目输入
输入一个数N,表示有N组数据,接下来N行分别输入两个数a,b,0<a<b<=100;
题目输出
输出a,b之间的非素数之和s,每两组数据之间一个空行;
输入/输出样例
输入格式
3 1 10 10 20 1 50
输出格式
38 105 947
C语言解答
#include<stdio.h> int Is_prime(int n) { int i; for(i = 2; i < n; i++) if(n % i == 0) return 0; return 1; } int main() { int i, sum, n, flag = 0, a, b; scanf("%d",&n); while(n--) { scanf("%d%d",&a,&b); sum = 0; for(i = a; i <= b; i++) { if(i == 1) { sum += 1; continue; } if(!Is_prime(i)) sum += i; } if(flag) printf("\n"); else flag = 1; printf("%d\n",sum); } return 0; }
C++解答
#include<stdio.h> int main() { int m,a,b,i,j,s; scanf("%d",&m); while(m--) { s=0; scanf("%d %d",&a,&b); if(a<2) s+=a; for(i=a; i<=b; i++) { for(j=2; j*j<=i; j++) if(i%j==0) { s+=i; break; } } if(m==0) printf("%d\n",s); else printf("%d\n\n",s); } return 0; }