用layui做的一个网站模板,wordpress 字母标签页,网络运维工程师需要什么证,企业展馆设计企业【问题描述】 莫比乌斯函数#xff0c;数论函数#xff0c;由德国数学家和天文学家莫比乌斯(Mobius#xff0c;1790-1868)提出。梅滕斯(Mertens)首先使用μ(n)作为莫比乌斯函数的记号。而据说#xff0c;高斯(Gauss)比莫比乌斯早三十年就曾考虑过这个函数。莫比乌斯函数在数…【问题描述】 莫比乌斯函数数论函数由德国数学家和天文学家莫比乌斯(Mobius1790-1868)提出。梅滕斯(Mertens)首先使用μ(n)作为莫比乌斯函数的记号。而据说高斯(Gauss)比莫比乌斯早三十年就曾考虑过这个函数。莫比乌斯函数在数论中有着广泛的应用。 莫比乌斯函数完整定义的通俗表达 1莫比乌斯函数μ(n)的定义域是N 2μ(1)1 3当n存在平方因子时μ(n)0 4当n是素数或奇数个不同素数之积时μ(n)-1 5当n是偶数个不同素数之积时μ(n)1 例如 μ(8)μ(12)μ(18)都为08的因数为1248其中42*2故μ(8)0 μ(2)μ(3)μ(30)都为-1 μ(1)μ(6)μ(10)都为1 给出一个数n计算μ(n)。 【输入形式】 输入一行一个整数n 【输出形式】 输出μ(n) 【样例输入】 12 【样例输出】 0
#include iostream
#include stdio.h
#include math.h
using namespace std;
int mobius(int n);
int main()
{int n;scanf(%d,n);mobius(n);return 0;
}
int mobius(int n)
{if(n1)//1就是1{return 1;}else{int res-1;//开始为奇数for(int i2; isqrt(n); i)//简便数的运算判断素数常用取一半数就行{//能进去if里面的肯定不是素数若该数就是一个素数直接输出-1就行了if(n%i0 n/i%i0)//非素数并且还有平方因子既然/i%i为0也就是i*i就是那个完全平方数{return 0;}else if(n%i0)//非素数{res*-1;//res负责判断素数为奇数还是偶数来一次变一次偶数为1奇数为-1n/i;}}printf(%d,res);//当res一次都没进入if里面说明该数就是个素数单个素数就是-1return 0;}
}