一道简单的oj题做做额嗯

img


#include <stdio.h>

    int main () {
    int n;
    scanf("%d",&n);
    char a[n];
    char b[n];
    int i,j,k,sum;
    int flag = 1;
    for(i=0;i<n;i++) {
        scanf("%d",a[i]);
    }
    for(i=0;i<n;i++) {
        for(j=1;j<a[i];j++) {
            if(a[i] % j == 0) {
                flag = 0;
                break;
            }
        }
        if(flag) {
            sum += a[i];
        }
        b[i] = sum;
        sum = 0;
    }
    for(k=0;k<sizeof(b);k++) {
        printf("%d\n",b[k]);
    }
    
    return 0;
}
#include <stdio.h>
int main() {
    int n,a,i,j,k,f,s;
    scanf("%d",&n);
    for(i=1; i<=n; i++) {
        scanf("%d",&a);
        s=0;
        for(j=2; j<=a; j++) {
            f=1;
            for(k=2; k*k<=j; k++) {
                if(j%k==0) {
                    f=0;
                    break;
                }
            }
            if(f) {
                s+=j;
            }
        }
        printf("%d\n",s);
    }
    return 0;
}


 觉得有用的话采纳一下哈


N=int(input(''))
num=[]
for i in range(N):
    num.append(int(input()))
for item in num:
    if item<=1:
        print(0)
    else:
        res=0
        for iitem in range(2,item+1):
            for i in range(2,iitem):
                if (iitem % i) == 0:
                    break
            else:
                res+=iitem
        print(res)

#include<iostream>
#include<math.h>
using namespace std;
bool isPrimeNumber(int n) {
    for (int i = 2; i <= sqrt(n); i++) {
        if (n % i==0)
            return false;
    }
    return true;
}
int main() {
    int a[1000];
    int sum=0,nTest,index;
    for (int i = 2; i < 1000; i++) {
        if (isPrimeNumber(i))
            sum += i;
        a[i] = sum;
    }
    cin >> nTest;
    while (nTest--) {
        cin >> index;
        cout << a[index] << endl;
    }
}

img