[ create a new paste ] login | about

Link: http://codepad.org/VfgyHgGB    [ raw code | output | fork | 1 comment ]

C, pasted on Oct 16:
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define MAX 100

void nhap (int a[], int &n)
{
	do
	{
		printf("\nNhap so phan tu: ");
		scanf("%d", &n);
		if(n <= 0 || n > MAX)
		{
			printf("\nSo phan tu khong hop le. Xin kiem tra lai !");
		}
	}while(n <= 0 || n > MAX);
	for(int i = 0; i < n; i++)
	{
		printf("\nNhap a[%d]: ", i);
		scanf("%d", &a[i]);
	}
}

void xuat(int a[], int n)
{
	for(int i = 0; i < n; i++)
	{
		printf("%4d", a[i]);
	}
}

int KiemTraHoanThien(int n)
{
	int tong = 0;
	for(int i = 1; i < n; i++)
	{
		if(n % i == 0)
		{
			tong += i;
		}
	}
	if(tong == n)
	{
		return 1;
	}
	else
	{
		return 0;
	}
}
int KiemTraMangKhongCoSoHoanThienLonHon256(int a[], int n)
{
	int flag = 0; // lúc đầu chưa có
	for(int i = 0; i < n; i++)
	{
		if(KiemTraHoanThien(a[i]) == 1 && a[i] < 256)
		{
			flag = 1;
			break;
		}
	}
	return flag;
}
int main()
{
	int n;
	int a[MAX];
	nhap(a, n);
	xuat(a, n);

	int flag = KiemTraMangKhongCoSoHoanThienLonHon256(a, n);
	if(flag == 1)
	{
		printf("\nMang khong co so hoan thien lon hon 256");
	}
	else
	{
	printf("\nKhong tim thay");
	}
	
	

	getch();
	return 0;
}


Output:
1
2
3
4
5
6
7
8
Line 17: error: conio.h: No such file or directory
Line 6: error: expected ';', ',' or ')' before '&' token
In function 'xuat':
Line 26: error: 'for' loop initial declaration used outside C99 mode
In function 'KiemTraHoanThien':
Line 35: error: 'for' loop initial declaration used outside C99 mode
In function 'KiemTraMangKhongCoSoHoanThienLonHon256':
Line 54: error: 'for' loop initial declaration used outside C99 mode


Create a new paste based on this one


Comments:
posted by Dgls on Mar 22
Mình có một cách tính số hoàn thiện khác để máy chạy nhanh hơn khi gặp những số dài:
#include<iostream>
#include<cmath>
using namespace std;
main(){
int n, stop=0;
cin>>n;
long long a[n], f[20];
for(int i=0; i<n; i++) cin>>a[i];
for(int i=0; i<19; i++) f[i]=pow(2,i+1)*(pow(2,i+2) - 1); //Công thức tính số hoàn thiện
for(int i=0; i<n; i++){
for(int j=2; j<19; j++){ //Số hoàn thiện thứ 3 trở đi là lớn hơn 256.
if(a[i]==f[j]){
stop=1;
cout<<"0"<<endl;
break;
}
}
}
if(stop==0) cout<<"1"<<endl;
}
reply