问题 3313 --质数排序(程序填空)

3313: 质数排序(程序填空)★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 240  解决: 127
[提交][状态][命题人:]

题目描述

5个人在玩游戏,每人抽5张牌,每张牌上都有一个大于0并且不大于1000的数字,根据每个人的牌上的质数数量进行由多到少排序,若质数数量相同则根据名字由小到大排序。

#include<bits/stdc++.h>
using namespace std;
struct node
{
    string s;
    int num;
}a[5];
bool isprime(int n)
{
    if(n==1) return 0;
    if(n<=3) return 1;
    for(int i=2;i*i<=n;i++)
    {
        if(n%i==0) return 0;
    }
    return 1;
}
bool cmp(node a,node b)
{
    if(_____(1)_____)
        return a.num>b.num;
    return a.s<b.s; 
}
int main()
{
    int k=0,m;
    while(k<5)
    {
        cin>>a[k].s;
        a[k].num=0;
        for(int i=0;i<5;i++)
        {
            cin>>m;
            if(_____(2)_______)
                a[k].num++;
        }
        k++;
    }
    _____(3)_______
    for(int i=0;i<5;i++)
    {
        cout<<a[i].s<<endl;
    }
}

输入

五行,每行分别为名字每张牌的值

输出

排序后结果

样例输入
Copy
aaa  6 8 855 96 35
bbb 65 84 96 333 245
ccc 258 369 954 658 412
ddd 2 5 874 6 55
eee 3 55 668 9 4
样例输出
Copy
ddd
eee
aaa
bbb
ccc

提示

来源

[提交][状态]