题目链接:codeforces1603A

题目思路:

从头开始删数字,对于每个数字 a i a_i ai,如果它不能被 2 2 2 ~ i + 1 i+1 i+1 的数整除,说明它可以被删除。

参考代码:

#include <iostream>
using namespace std;
const int N = 1e5 + 10;
int a[N];
int n;
int main() {
   
    int t;
    cin >> t;
    while (t--) {
   
        cin >> n;
    	for (int i = 1; i <= n; i++) cin >> a[i];
    	int flag, ff = 0;
    	for (int i = 1; i <= n; i++) {
   
        	flag = 0;
        	for (int j = 2; j <= i+1; j++) {
   
            	if (a[i]%j) {
   flag = 1; break;} 
       	 	}
       	 	if (!flag) {
   ff = 1, puts("NO"); break;}
    	}
    	if (!ff) puts("YES");
    } 
    return 0;
}