c++欧拉函数按照这个图编,我写的是#include <iostream>#include <cmat
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/10/04 07:17:43
c++欧拉函数
按照这个图编,我写的是
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
int m;
int n;
int p = 2;
cout<< "请输入数值:" << endl;
cin >> n;
m = n;
int k = 0;
if (p*p>n&&n>1)
{
cout << m << endl;
}
while (p*p <= n,k = 0)
{
while (n / p == 0)
{
n /= p; k++;
}
if (k >= 1)
{
m = m*(p - 1) / p;
}
p++;
}
if (n>1)
{
m = m*(n - 1) / n;
cout << m << endl;
}
return m;
cout << m << endl;
return 0;
}
,反正是不对的,求各位大神指教
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
int m;
int n;
int p = 2;
cout<< "请输入数值:" << endl;
cin >> n;
m = n;
int k = 0;
/*
if (p*p>n&&n>1)
{cout << m << endl;
}*///放在后面写
while (p*p <= n)
//不能写成 p*p <= n,k=0,这样写是逗号表达式,表达式的值取最后一个表达式的值k=0,表达式恒假,导致循环一次也不做
{
k = 0
while (p / n != 0)//除号两边写反了,循环的条件是p/n不为0
{
n /= p; k++;
}
if (k >= 1)
{
m = m*(p - 1) / p;
}
p++;
}
if (n>1)
{
m = m*(n - 1) / n;
/*
cout << m << endl;*///放在后面写
}
//return m;
//图上是用函数做的,所以有返回,这里你直接写在主程序中,所以不要加return m
cout << m << endl;//输出m的值
return 0;
}
有什么问题再联系
再问: 麻烦讲一下什么是逗号表达式么?
再答: 比如说表达式a=5,b=2,a+b,a*b就是1个逗号表达式,它是由多个表达式组成,每个表达式中间用逗号隔开,逗号表达式的执行顺序是从左到右,也就是上面这个例子,先做a=5,在做b=2, 然后执行a+b,最后执行a*b,这个逗号表达式的值是最后一个表达式的值,也就是a*b的值,由于第1个和第2个将a设为5,b设为2,第3个表达式只计算并没有改变a和b的值,所以最后1个表达式a*b=5*2=10,所以表达式a=5,b=2,a+b,a*b的值为10
再问: while(p*p
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
int m;
int n;
int p = 2;
cout<< "请输入数值:" << endl;
cin >> n;
m = n;
int k = 0;
/*
if (p*p>n&&n>1)
{cout << m << endl;
}*///放在后面写
while (p*p <= n)
//不能写成 p*p <= n,k=0,这样写是逗号表达式,表达式的值取最后一个表达式的值k=0,表达式恒假,导致循环一次也不做
{
k = 0
while (p / n != 0)//除号两边写反了,循环的条件是p/n不为0
{
n /= p; k++;
}
if (k >= 1)
{
m = m*(p - 1) / p;
}
p++;
}
if (n>1)
{
m = m*(n - 1) / n;
/*
cout << m << endl;*///放在后面写
}
//return m;
//图上是用函数做的,所以有返回,这里你直接写在主程序中,所以不要加return m
cout << m << endl;//输出m的值
return 0;
}
有什么问题再联系
再问: 麻烦讲一下什么是逗号表达式么?
再答: 比如说表达式a=5,b=2,a+b,a*b就是1个逗号表达式,它是由多个表达式组成,每个表达式中间用逗号隔开,逗号表达式的执行顺序是从左到右,也就是上面这个例子,先做a=5,在做b=2, 然后执行a+b,最后执行a*b,这个逗号表达式的值是最后一个表达式的值,也就是a*b的值,由于第1个和第2个将a设为5,b设为2,第3个表达式只计算并没有改变a和b的值,所以最后1个表达式a*b=5*2=10,所以表达式a=5,b=2,a+b,a*b的值为10
再问: while(p*p
运行后的图是:#include <stdio.h>#include <stdlib.h>void
#include <stdio.h> #include <iostream> int main(
一道c语言题,#include<stdio.h>#include<string.h>#inclu
C语言高手帮我填空#include <stdio.h>#include
acm 源代码编译没错啊,为什么ACM不接受啊?请问错在哪儿?#include<iostream>#incl
#include <stdio.h>
下面是我的答案#include<stdio.h>int main(){ char a[100],b
c语言编程计算数列合#include <stdio.h> #include &
#include <stdio.h>/* userCode(<80字符):自定义函数之原型声明 */i
while语句!#include <stdio.h>#include <windows.h>in
转置矩阵#include <stdio.h> #include <stdlib.h>
C语言编程数位的调换#include<stdio.h>int main(void){\x05int n,m,