#include <stdio.h>
int main()
{
int num1, num2, i;
printf("输入两个数,使用空格分隔:");
scanf("%d %d", &num1, &num2);
for (i = 1; i <= (num1 > num2 ? num2 : num1) ; ++i)
{
if (num1%i == 0 && num2%i == 0)
{
printf("%d ", i);
}
}
return 0;
}
1609c-examples-check-armstrong-number
参考方法:
#include<stdio.h>
long long power(long long x,int y)
{
long long sum = 1;
while(y--)
{
sum *= x;
}
return sum;
}
int check_arm(long long n)
{
long long temp,sum = 0,remainder,count = 0;
temp = n;
while(temp*10/10 != 0)
{
temp /= 10;
++count;
}
temp = n;
while(temp*10/10 != 0)
{
sum += power(temp%10,count);
temp /= 10;
}
if(n == sum)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
long long temp,n,result,a,b,i;
int flag;
printf("Please enter a number:\n");
scanf("%lld",&n);
result = check_arm(n);
if(result == 1)
{
printf("Yes, it's an Armstrong number.\n\n");
}
else
{
printf("No, it isn't an Armstrong number.\n\n");
}
printf("Please enter two numbers as an interregional,seperated by a space.\n");
scanf("%lld %lld",&a,&b);
flag = 1;
if(a == b)
{
printf("That is no an valid interregional.\n");
flag = 0;
}
else if(a > b)
{
temp = a;
a = b;
b = temp;
}
if(flag == 1)
{
printf("Armstrong number(s) between %lld and %lld is(are):\n",a,b);
for(i = a;i<=b;i++)
{
if(check_arm(i) == 1)
{
printf("%lld ",i);
}
}
}
return 0;
}
1608c-examples-prime-number
可以考虑用sqrt降低时间复杂度
#include<stdio.h>
#include<math.h>
int issushu(int k);
int main(){
int n,count=0;
scanf("%d",&n);
for(int i=n;i>3;i--)
if(issushu(i))
if(issushu(i-2))
count++;
printf("%d",count);
return 0;
}
int issushu(int k){
for(int i=2;i<sqrt(k)+1;i++){
if(k%i==0)
return 0;
}
return 1;
}
1607c-examples-palindrome-number
参考方法:
#include <stdio.h>
#include<string.h>
int main()
{
int a=12021;
char s[10]={'\0'},s1[10]={'\0'};
sprintf(s,"%d",a); // 将整数转换为字符串
int n=strlen(s);
int j=0;
for(int i=n-1;i>=0;i--)
{
s1[j++]=s[i];
}
//s[j]='\0';
printf("%s %s\n",s,s1);
if(!strcmp(s,s1))
printf("整数%d是回文串",a);
else
printf("整数%d不是回文串",a);
return 0;
}
1606c-examples-power-number
参考方法:
#include<stdio.h>
int main()
{
int i,a,b;
unsigned long c=1;
printf("请输入基数:");
scanf("%d",&a);
printf("请输入指数");
scanf("%d",&b);
for(i=1;i<=b;i++)
{
c *= a;
}
printf("%lu",c);
return 0;
}
1610c-examples-factors-number
寻找两数的所有公因数:
#include <stdio.h> int main() { int num1, num2, i; printf("输入两个数,使用空格分隔:"); scanf("%d %d", &num1, &num2); for (i = 1; i <= (num1 > num2 ? num2 : num1) ; ++i) { if (num1%i == 0 && num2%i == 0) { printf("%d ", i); } } return 0; }1609c-examples-check-armstrong-number
参考方法:
#include<stdio.h> long long power(long long x,int y) { long long sum = 1; while(y--) { sum *= x; } return sum; } int check_arm(long long n) { long long temp,sum = 0,remainder,count = 0; temp = n; while(temp*10/10 != 0) { temp /= 10; ++count; } temp = n; while(temp*10/10 != 0) { sum += power(temp%10,count); temp /= 10; } if(n == sum) { return 1; } else { return 0; } } int main() { long long temp,n,result,a,b,i; int flag; printf("Please enter a number:\n"); scanf("%lld",&n); result = check_arm(n); if(result == 1) { printf("Yes, it's an Armstrong number.\n\n"); } else { printf("No, it isn't an Armstrong number.\n\n"); } printf("Please enter two numbers as an interregional,seperated by a space.\n"); scanf("%lld %lld",&a,&b); flag = 1; if(a == b) { printf("That is no an valid interregional.\n"); flag = 0; } else if(a > b) { temp = a; a = b; b = temp; } if(flag == 1) { printf("Armstrong number(s) between %lld and %lld is(are):\n",a,b); for(i = a;i<=b;i++) { if(check_arm(i) == 1) { printf("%lld ",i); } } } return 0; }1608c-examples-prime-number
可以考虑用sqrt降低时间复杂度
#include<stdio.h> #include<math.h> int issushu(int k); int main(){ int n,count=0; scanf("%d",&n); for(int i=n;i>3;i--) if(issushu(i)) if(issushu(i-2)) count++; printf("%d",count); return 0; } int issushu(int k){ for(int i=2;i<sqrt(k)+1;i++){ if(k%i==0) return 0; } return 1; }1607c-examples-palindrome-number
参考方法:
#include <stdio.h> #include<string.h> int main() { int a=12021; char s[10]={'\0'},s1[10]={'\0'}; sprintf(s,"%d",a); // 将整数转换为字符串 int n=strlen(s); int j=0; for(int i=n-1;i>=0;i--) { s1[j++]=s[i]; } //s[j]='\0'; printf("%s %s\n",s,s1); if(!strcmp(s,s1)) printf("整数%d是回文串",a); else printf("整数%d不是回文串",a); return 0; }1606c-examples-power-number
参考方法:
#include<stdio.h> int main() { int i,a,b; unsigned long c=1; printf("请输入基数:"); scanf("%d",&a); printf("请输入指数"); scanf("%d",&b); for(i=1;i<=b;i++) { c *= a; } printf("%lu",c); return 0; }