目录
1、质数(素数)、合数问题
质数:大于1的自然数,除了1和它本身,不再有其它因数(规定1既不是质数也不是合数),而质数正相反的就是与合数,所以一个大于1的数,不是质数就是合数
#include<stdio.h>
int main(){
int n,i;
printf("请输入一个数:");
scanf("%d",&n);
for(i = 2; i <= n-1; i++){
if(n % i == 0){
break;
}
}
if(i>=n){
printf("this is prime");
}else
printf("this is not prime");
return 0;
}
2、回文数问题
“回文”指正着读反着读都能读通的句子,在数学中也有这样逻辑的数被称为“回文数”,判断一个数n是不是回文数,就看它的各位数字正向排列和反向排列所得的数n1是否相等。
#include <stdio.h>
int main(){
int n,res,rem,temp;
printf("请输入一个数:");
scanf("%d",&n);
temp=n;
while(n != 0){
res = n % 10;
rem = rem * 10 + res;
n /= 10;
}
if(temp == rem){
printf("%d是回文数",temp);
}else
printf("%d不是回文数",temp);
return 0;
}
3、约数(因数)问题
约数:求一个数(正整数)的约数,约数就是能除尽的数,没有余数。
#include <stdio.h>
int nums[100];
int main(){
int n,j;
printf("请输入一个数:");
scanf("%d",&n);
for(int i = 1; i <= n; i++){
if(n % i == 0){
nums[j++]=i;
}
}
printf("%d的约数有");
for(int i=0;i<j;i++){
printf("%d ",nums[i]);
}
return 0;
}
4、最大公约数和最小公倍数问题
能够整除一个整数的整数称为其的约数(如5是10约数);能够被一个整数整除的整数称为其的倍数(如10是5的倍数);如果一个数既是数A的约数,又是数B的约数,称为A,B的公约数,A,B的公约数中最大的一个(可以包括AB自身)称为AB的最大公约数。
#include <stdio.h>
int main(){
int a,b,c,avg;
printf("请输入两个数:");
scanf("%d%d",&a,&b);
avg=a*b;
while(b){
c=a%b;
a=b;
b=c;
}
printf("最大公约数是%d\n",a);
int ret = avg / a;
printf("最小公倍数是%d\n",ret);
return 0;
}