本文发布于 1253 天前,最后更新于 1104 天前,其中的信息可能已经有所发展或是发生改变。
编写函数,判断一个正整数是不是完数。所谓完数就是其因数(不包括自身)之和等于其自身的整数,如6。
#include<bits/stdc++.h>
using namespace std;
bool judge_profect_num(int a)
{
int s = 0;
int i = 1;
while(i<(a/2+1))
{
if(a%i==0)
{
s+=i;
}
i++;
}
if(s==a) return true;
else return false;
}
int main()
{
int a;
cin >> a;
if(judge_profect_num(a))
{
cout << "Yes,是完数";
return 0;
}
cout << "No,不是完数";
}
水题,不解释
写函数,验证费马小定理:如果p是素数,而a不是p的倍数,则a的p-1次方除以p的余数恒为1.
#include <bits/stdc++.h>
using namespace std;
bool judge_prime(int a)
{
for(int i = 2;i * i <=a;i++)
{
if(a%i ==0)
{
return false;
}
}
return true;
}
int main()
{
cout << "请分别输入a,p" <<endl;
int a,p;
cin >> a >> p;
if(!judge_prime(a)||a%p==0)
{
cout << "a非素数或a是p倍数,程序结束";
return 0;
}
cout << "a的p-1次方 " << pow(a,p-1) << endl;
int b = pow(a,p-1);
cout << "a的p-1次方除以p的余数是 " << b%p <<endl;
if(b%p==1) cout << "证明成立";
}
水题,不解释+2
编写函数,验证欧拉定理:对于任意互素的a和n,a的f(n)次方除以n的余数恒为1。其中f(n)是小于等于n的正整数中与n互质的个数。
#include<bits/stdc++.h>
#define ULL unsigned long long
using namespace std;
/*使用了C++17语法,故编译时gcc -g -Wall -std=c++17 !!!
--------
- C++ 编译器: C:\MinGW\bin\g++.exe
- 命令: g++.exe "~\7_1_3_212210711220.cpp" -o " ~\7_1_3_212210711220.exe" -g -Wall -std=c++17 -I"C:\MinGW\include" -I"C:\MinGW\lib\gcc\mingw32\9.2.0\include" -I"C:\MinGW\lib\gcc\mingw32\9.2.0\include\c++" -L"C:\MinGW\lib" -L"C:\MinGW\mingw32\lib" -static-libstdc++ -static-libgcc
*/
bool co_prime(int a, int b)
{
if(gcd(a,b)==1)
return true;
return false;
}
int fn(int n)
{
int ans = 1;//把1默认算进去
for(int i = 2;i<=n;i++)
{
if(co_prime(n,i)) ans++;
}
return ans;
}
int main()
{
ULL int a,n;
cin >> a >> n;
ULL int aa = ceil(pow(a,fn(n)));
cout << aa << endl;
cout << "a的f(n)次方除以n的余数是 " << aa%n;
}
这个题有点意思,编写过程中用到了 C++17 的语法(主要是gcd()函数了),然后,没了,水就完事了。