问题标题: 酷町堂:3890 开心数

0
0
已解决
童梦圆
童梦圆
资深守护
资深守护

http://judge2.codingtang.com/problem/3890/

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long n;
    cin>>n;
    int num,s=0,flag;
    for(long long k=1;k<=n;k++)
    {
        num=0;
        for(long long i=2;i<=sqrt(k);i++)
        {
            if(k%i==0)
            {
                flag=1;
                for(long long j=2;j<=sqrt(i);j++)
                    if(i%j==0)
                        flag=0;
                if(flag==1)
                    num++;
            }
        }
        if(num==4)
        s++;
    }
    cout<<s<<endl;
    return 0;
}

童梦圆在2019-07-14 11:33:26追加了内容

哪里错了???

0分


1
已采纳
杨舰中
杨舰中
高级守护
高级守护
你好,我看不出你的问题,看看我的代码
    for(2到n的循环)
    {
        if(a[i]==0)
        {
            for(int j=2*i;j<=n;j+=i)//2*i到n的循环
            a[j]++;//用桶保存起来
        }
     } 
    for(2到n的循环)
        {
            if(a[i]==4)//若桶内有4个数
            cnt++;//计数器+1

        } 
        cout<<cnt<<" ";//最后输出   

 

0
童梦圆
童梦圆
资深守护
资深守护

求解!!!!!!!!!!!!!!

0
0
我要回答