shu_1746 无平方因子

http://202.121.199.212/JudgeOnline/problem.php?id=1746

analy: 无平方因子数,那就是不同的素因子个数一定不超过1,于是就朝这个方向努力:

先把2—10^9之间的所有素数求出来(也就是到99999989之间的所有素数用bool表打出来)

然后一个一个素因子判断过去;

再然后果断TLE了n次;

于是,观察了一下其他人的提交记录,发现代码很短,不可能打表;时间也很短,有很好的算法?

试后,找了一下无平方因子的相关资料,没发现很好的算法;

于是,暴力了。。。

然后,AC了。。。

tip:

用long long的n去除 int  的 (i*i) , 出现除0错(oj上,本地机倒是没有报错)

code:

#include <iostream>
#include <stdio.h>
#include <string>
#include <string.h>
using namespace std;

int main()
{
   // freopen("in5.txt","r",stdin);
    //freopen("out.txt","w",stdout);
    int t;
    long long n;
    bool flag;
    scanf("%d",&t);

    for(int cno=1;cno<=t;cno++){
        scanf("%lld",&n);
        printf("Case %d: ",cno);

        if(n%100==0){
            printf("No\n");
            continue;
        }
        flag=false;
        for(long long i=2;i*i<=n;i++){
            if(n%(i*i)==0){
                printf("No\n");
                flag=true;
                break;
            }
        }
        if(!flag) printf("Yes\n");
    }
    return 0;
}

shu_1746 无平方因子

时间: 2024-11-08 11:18:43

shu_1746 无平方因子的相关文章

数轮初步---无平方因子的数

这是从刘汝佳的算法竞赛入门经典中看到的题,书中是这么描述的 给出正整数n和m,输出在[m, n]中的无平方因子数.PS(无平方因子数的概念请自行百度) #include<stdio.h> #include<string.h> #include<math.h> bool visited[10000005]; int prime[500000]; int main(){ int n, m; scanf("%d", &n, &m); int

无平方因子数的分布 (Ⅰ)

无平方因子数的分布(Ⅰ) Daoyi Peng May 23, 2015 ● 卷积方法余项估计 定义 1   乘性函数 $n\mapsto \mu^2(n)$, 其部分和 \begin{equation*}  Q(x):=\sum_{n\leqslant x}\mu^2(n)\end{equation*} 等于不超过 $x$ 的无平方因子整数的个数. 定理 1   当 $x$ 趋于无穷时, 有 \begin{equation*}  Q(x)=\frac{6}{\pi^2}x+O(\sqrt{x}

UESTC 618 无平方因子数 (容斥 + 莫比乌斯反演)

无平方因子数 Time Limit: 4000/2000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit  Status 无平方因子数即对于任意一个素数p,p2都不会整除那个数,如1 , 5=5 , 15=3×5都是无平方因子数,而20=22×5不是.现在给定一个n (1≤n<1012) ,求区间[1,n]中无平方因子数的个数. Input 第一行有个整数T,代表数据组数(T≤10) 接下来有T行,每行有个整数n

九度OJ:题目1476:平方因子 AC

1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<math.h> 4 bool judge(int a) 5 { 6 int sqr=sqrt(a*1.0); 7 for(int i=2 ; i<=sqr+1 ; ++i) 8 { 9 int tmp=i*i; 10 if(a%tmp==0) 11 return 1; 12 } 13 return 0; 14 } 15 16 int main(int argc,

HDU 5728 - PowMod

题意:    定义: k = ∑(i=1,m) φ(i∗n) mod 1000000007 给出: n,m,p ,且 n 无平方因子 求: ans= k^(k^(k...k)) mod p  (k有无限个)    分析: 欧拉函数 + 指数循环节        第一部分 求出 k.        定理: 1.欧拉函数是非完全积性函数: φ(m*n) = φ(n)*φ(m) , 当且仅当GCD(n,m) = 1.        应用:            ∑(i=1,m)φ(i*n) = φ(p

【BZOJ】【2440】【中山市选2011】完全平方数

莫比乌斯函数/容斥原理 PoPoQQQ讲义引入例题= = 比较水……就是莫比乌斯函数的简单应用,也可理解为乱容斥一下…… 二分答案——>求1~x有多少个无平方因子的数Q(x). 引用一下PoPoQQQ的题解: •根据容斥原理可知 对于sqrt(x)以内所有的质数 有 •  x以内的无平方因子数 •=0个质数乘积的平方的倍数的数的数量(1的倍数) •-每个质数的平方的倍数的数的数量(9的倍数,25的倍数,...) •+每2个质数乘积的平方的倍数的数的数量(36的倍数,100的倍数,...)-...

BZOJ 2440 [中山市选2011]完全平方数 ——莫比乌斯函数

$\sum_{i=1}^n[i==d^2*p]$ 其中p无平方因子$=\sum_{d^2\mid n,d>=2}\sum_{i=1}^{\lfloor {n/d^2} \rfloor} \left| \mu(i) \right |$然后就成了计算$\left| \mu(i) \right |$ 的前缀和?但是貌似不太可能啊 然后我们重新考虑容斥.发现最终的结果 s=一个质数平方的倍数-两个质数乘积平方的倍数-三个的-五个的+6个的发现系数和$\mu$一样,然后就可以枚举d进行计算了$$\sum_

【tyvj五月有奖赛 暨Loi 55 Round #1】

解题报告: 傻逼错误天天犯QAQ 第一题:简单DP,f[i][j]表示第 i 道题选 j 的最大得分,可以从f[i-1][j-1],f[i-1][j],f[i-1][j+1]转移过来,其实是可以滚动数组优化空间的,不过懒得弄了=.=反正能过 1 //TYVJ A 2 #include<vector> 3 #include<cstdio> 4 #include<cstdlib> 5 #include<cstring> 6 #include<iostrea

[SinGuLaRiTy] 数论题目复习

[SinGuLaRiTy-1020] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. [CQBZOJ 1464] Hankson 题目描述 Hanks博士是BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫Hankson.现在,刚刚放学回家的Hankson正在思考一个有趣的问题. 今天在课堂上,老师讲解了如何求两个正整数c1和c2的最大公约数和最小公倍数.现在Hankson认为自己已经熟练地掌握了这些知识,他开始思考一个“