c++语言,找出合数并输出

从键盘输入十个正整数,找出最大的合数(合数,除了能被1和本身整除外,还能被其他数(0除外)整除的数),如果10个正整数没有合数,输出无。

因为合数不好找,所以可以转换成筛出其中的质数,再将其赋值成极小值,最后循环找出最大的合数
代码:

#include<bits/stdc++.h>//万能头文件
using namespace std;
bool check_prime(int x){//判断x是否为质数
    if(x==0||x==1)return false;//0和1单独判断
    for(int i=2;i<(int)sqrt(x);i++){//不必枚举到x,到根号x就行了
        if(x%i==0)return false;//如果x整除i,说明x不是质数
    }
    return true;
}
int main(){
    int a[10],maxx=0;//maxx为最大的合数
    for(int i=0;i<10;i++)cin>>a[i];
    for(int i=0;i<10;i++)
        if(check_prime(a[i]))a[i]=-1000;//找到质数并赋为极小值
    for(int i=0;i<10;i++)循环找出最大合数
        if(a[i]>maxx)maxx=a[i];
    cout<<maxx;
    return 0;
}